Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
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@v3
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@v3
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".