1
resposta

Problema com Deploy EC2

Bom dia!

Estou com um problema para realizar o deploy. Aparentemente o step de checkout (v3), mesmo posterior ao de download do artefato, está sobre-escrevendo o arquivo main (compilado e gerado no artefato).

Pelo log, é possível ver que o comando rsync sincronizou os arquivo, mas não o main. No log em seguida reparei o seguinte erro:

err: chmod: cannot access ‘main’: No such file or directory

Segue o arquivo usado escrito por mim, baseado nas aulas:

name: Deploy EC2

on:
  workflow_call:

jobs:
  deploy_ec2:
    runs-on: ubuntu-latest
    steps:
      - name: Download a Build Artifact
        uses: actions/download-artifact@v3.0.1
        with:
          name: Artifact API GO

      - uses: actions/checkout@v3

      - name: ssh deploy
        uses: easingthemes/ssh-deploy@v2.2.11
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
          REMOTE_USER: ${{ secrets.REMOTE_USER }}
          TARGET: /home/${{ secrets.REMOTE_USER }}
          EXCLUDE: "postgres-data"

      - name: executing remote ssh commands using secret key
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.REMOTE_HOST }}
          username: ${{ secrets.REMOTE_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          port: 22
          script: |
            export DB_HOST=${{ secrets.DB_HOST }}
            export DB_USER=${{ secrets.DB_USER }}
            export DB_PASSWORD=${{ secrets.DB_PASSWORD }}
            export DB_NAME=${{ secrets.DB_NAME }}
            export DB_PORT=${{ secrets.DB_PORT }}
            export PORT=8000
            chmod +x main
            nohup ./main > nohup.out 2> nohup.err < /dev/null &

Alguém poderia me ajudar por favor. Pesquisei sobre as possibilidades de não sobre-escrever, mas não deram certo.

Obrigado

1 resposta

Tudo bem Guilherme?

No GitHub Actions o actions/checkout@v3 apaga todos os arquivos e prepara todo o ambiente, então ele deve ser a primeira coisa a ser executada, logo basta colocar ele antes de baixar o artefato e a sua rotina deve funcionar corretamente.

Espero ter ajudado, continue se esforçando e bons estudos.