Skip to main content

Recursos essenciais do GitHub Actions

GitHub Actions foram projetados para ajudar você a construir automações robustas e dinâmicas. Este guia irá mostrar como criar fluxos de trabalho de GitHub Actions que incluem variáveis de ambiente, scripts personalizados e muito mais.

Visão geral

GitHub Actions permite que você personalize seus fluxos de trabalho para atender às necessidades únicas de seu aplicativo e equipe. Neste guia, discutiremos algumas das técnicas de personalização essenciais, como o uso de variáveis, a execução de scripts e o compartilhamento de dados e artefatos entre trabalhos.

Usar variáveis em seus fluxos de trabalho

GitHub Actions incluem variáveis de ambiente-padrão para cada execução de fluxo de trabalho. Se precisar usar variáveis de ambiente personalizadas, você pode defini-las no seu arquivo de fluxo de trabalho YAML. Este exemplo demonstra como criar variáveis personalizadas chamadas POSTGRES_HOST e POSTGRES_PORT. Em seguida, essas variáveis estão disponíveis para o script node client.js.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Connect to PostgreSQL
        run: node client.js
        env:
          POSTGRES_HOST: postgres
          POSTGRES_PORT: 5432

Para obter mais informações, confira "Variáveis".

Adicionar scripts ao seu fluxo de trabalho

Você pode usar um fluxo de trabalho do GitHub Actions para executar scripts e comandos de shell, que são então executados no executor atribuído. Este exemplo demonstra como usar a palavra-chave run para executar o comando npm install -g bats no executor.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - run: npm install -g bats

Para usar um fluxo de trabalho para executar um script armazenado em seu repositório, primeiro você deve fazer check-out do repositório para o executor. Feito isso, você pode usar a palavra-chave run para executar o script no executor. O exemplo a seguir executa dois scripts, cada um em uma etapa de trabalho separada. O local dos scripts no executor é especificado definindo um diretório de trabalho padrão para comandos de execução. Para obter mais informações, confira "Definindo valores padrão para trabalhos".

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Run a script
        run: ./my-script.sh
      - name: Run another script
        run: ./my-other-script.sh

Todos os scripts que você deseja que um trabalho de fluxo de trabalho execute devem ser executáveis. Você pode fazer isso no fluxo de trabalho, passando o script como um argumento para o interpretador que executará o script, por exemplo, run: bash script.sh, ou tornando o próprio arquivo executável. Você pode dar ao arquivo a permissão de execução usando o comando git update-index --chmod=+x PATH/TO/YOUR/script.sh localmente e, em seguida, confirmando e enviando o arquivo por push para o repositório. Como alternativa, para fluxos de trabalho executados em executores Linux e Mac, você pode adicionar um comando para dar ao arquivo a permissão de execução no trabalho de fluxo de trabalho, antes de executar o script:

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Make the script files executable
        run: chmod +x my-script.sh my-other-script.sh
      - name: Run the scripts
        run: |
          ./my-script.sh
          ./my-other-script.sh

Para obter mais informações sobre a palavra-chave run, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".

Compartilhar dados entre trabalhos

Se o seu trabalho gerar arquivos que você deseja compartilhar com outro trabalho no mesmo fluxo de trabalho ou se você quiser salvar os arquivos para referência posterior, armazene-os no GitHub como artefatos. Artefatos são os arquivos que surgem quando você compila e testa seu código. Por exemplo, os artefatos podem incluir arquivos binários ou de pacotes, resultados de testes, capturas de tela ou arquivos de log. Os artefatos estão associados à execução do fluxo de trabalho em que foram criados e podem ser usados por outro trabalho. Todas as ações e fluxos de trabalho chamados dentro de uma execução têm acesso de gravação aos artefatos daquela execução.

Por exemplo, você pode criar um arquivo e, em seguida, carregá-lo como um artefato.

jobs:
  example-job:
    name: Save output
    runs-on: ubuntu-latest
    steps:
      - shell: bash
        run: |
          expr 1 + 1 > output.log
      - name: Upload output file
        uses: actions/upload-artifact@v4
        with:
          name: output-log-file
          path: output.log

Para baixar um artefato de uma execução de fluxo de trabalho separada, use a ação actions/download-artifact. Por exemplo, você pode baixar o artefato chamado output-log-file.

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - name: Download a single artifact
        uses: actions/download-artifact@v4
        with:
          name: output-log-file

Para baixar um artefato da mesma execução de fluxo de trabalho, o trabalho de download deve especificar needs: upload-job-name para que ele não seja iniciado até que o trabalho de upload seja concluído.

Para saber mais sobre artefatos, confira "Armazenar dados do fluxo de trabalho como artefatos".

Próximas etapas

Para continuar aprendendo sobre o GitHub Actions, confira "Sobre fluxos de trabalho".