Extraiga automáticamente desde el control remoto usando GitHub Actions

1 minuto de lectura

avatar de usuario
factor

Tengo un repositorio privado en GitHub y mi objetivo es que cada vez que haya una nueva confirmación, el repositorio se actualice en el VPS.

Lo que estoy haciendo actualmente es usar una acción SSH para iniciar sesión en el servidor, ubicar el repositorio y extraer desde el origen

El problema con esto es que el repositorio es privado y requiere autenticación. Intenté configurar mi nombre de usuario y contraseña en la configuración global de git, pero incluso después de hacerlo, todavía requiere autenticación.

Descubrí la solución por mi cuenta. El problema con las diversas cosas que estaba haciendo era el siguiente. Estaba tratando de hacer algo en la línea de git pull https://${{ secrets.TOKEN }}@github.com/repo

La solución fue poner todo el comando git pull https://token@github.com/repo como un secreto y luego ejecutar el script: ${{ secrets.SCRIPT }} a través de SSH.

Mi acción al final de esto:

name: Remote SSH
on: [push]
jobs:

  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - name: executing remote ssh commands using password
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.IP }}
        username: ${{ secrets.USER }}
        password: ${{ secrets.PRIVATE_KEY }}
        port: ${{ secrets.PORT }}
        script: |
          cd Repository
          ${{ secrets.SCRIPT}}
          pm2 restart 0

Según el documento, puedes usar env como este

  - name: pass environment
    uses: appleboy/ssh-action@master
    env:
      FOO: "BAR"
      BAR: "FOO"
      SHA: ${{ github.sha }}
    with:
      host: ${{ secrets.HOST }}
      username: ${{ secrets.USERNAME }}
      key: ${{ secrets.KEY }}
      port: ${{ secrets.PORT }}
      envs: FOO,BAR
      script: |
        echo "I am $FOO"
        echo "I am $BAR"
        echo "sha: $SHA"

  • ¿Puedes poner el enlace al documento?

    – por favor

    19 de mayo de 2021 a las 4:04

avatar de usuario
diego

¡Oh, genial, tu propia solución solucionó mi problema!

Solo cambié el comando poniendo la rama específica que quiero porque no estaba actualizando bien la rama, así que mi propia solución es:

git pull https://${{secrets.PAT}}@github.com/repo.git branch_name

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad