Observação: GitHub Actions está atualmente na versão beta para GitHub AE.
Sobre as variáveis de ambiente
GitHub define as variáveis-padrão do ambiente disponíveis para cada etapa da execução de um fluxo de trabalho. As variáveis de ambiente diferenciam entre maiúsculas e minúsculas. Os comandos executados em ações ou etapas podem criar, ler e modificar as variáveis do ambiente.
Para definir as variáveis do ambiente personalizadas, você deverá especificar as variáveis no arquivo do fluxo de trabalho. Você pode definir as variáveis de ambiente para uma etapa, trabalho ou para todo um fluxo de trabalho, usando as palavras-chave jobs.<job_id>.steps[*].env, jobs.<job_id>.env, and env. Para obter mais informações, consulte "Sintaxe de fluxo de trabalho para o GitHub".
jobs:
weekday_job:
runs-on: ubuntu-latest
env:
DAY_OF_WEEK: Mon
steps:
- name: "Hello world when it's Monday"
if: ${{ env.DAY_OF_WEEK == 'Mon' }}
run: echo "Hello $FIRST_NAME $middle_name $Last_Name, today is Monday!"
env:
FIRST_NAME: Mona
middle_name: The
Last_Name: Octocat
Para usar o valor de uma variável de ambiente em um arquivo do fluxo de trabalho, você deve usar o contexto env. Se você deseja usar o valor de uma variável de ambiente dentro de um executor, você poderá usar o método normal do sistema operacional do executor para ler variáveis de ambiente.
Se você usar a chave executar do arquivo de fluxo de trabalho para ler variáveis de ambiente de dentro do sistema operacional do executor (como mostrado no exemplo acima), a variável será substituída no sistema operacional do executor depois que a tarefa for enviada para o executor. Para outras partes de um arquivo de fluxo de trabalho, você deve usar o contexto env para ler variáveis de ambiente. Isso ocorre porque as chaves do fluxo de trabalho (como se) exigem que a variável seja substituída durante o processamento do fluxo de trabalho antes de ser enviada para o executor.
Você também pode usar o GITHUB_ENV environment file para definir uma variável de ambiente que as seguintes etapas em um fluxo de trabalho podem usar. O comando do arquivo de ambiente pode ser usado diretamente por uma ação ou como um comando do shell em um arquivo de fluxo de trabalho usando a palavra-chave executar. Para obter mais informações, consulte "Comandos do fluxo de trabalho para GitHub Actions".
Variáveis padrão de ambiente
É altamente recomendável que as ações usem as variáveis do ambiente para acessar o sistema do arquivo em vez de usar os caminhos do arquivo com codificação rígida. GitHub define as variáveis de ambiente para ações a serem usadas em todos os ambientes executores.
| Variável de ambiente | Descrição |
|---|---|
CI | Definido sempre como verdadeiro. |
GITHUB_WORKFLOW | Nome do fluxo de trabalho. |
GITHUB_RUN_ID | Um número exclusivo para cada execução em um repositório. Este número não muda se você executar novamente o fluxo de trabalho. |
GITHUB_RUN_NUMBER | Um número exclusivo para cada execução de um fluxo de trabalho específico em um repositório. Este número começa em 1 para a primeira execução do fluxo de trabalho, e incrementa a cada nova execução. Este número não muda se você executar novamente o fluxo de trabalho. |
GITHUB_JOB | O job_id do trabalho atual. |
GITHUB_ACTION | Identificador único (id) da ação. |
GITHUB_ACTION_PATH | O caminho onde está localizada a sua ação. Você pode usar esse caminho para acessar os arquivos localizados no mesmo repositório que sua ação. Esta variável só é compatível com ações de etapas de execução compostas. |
GITHUB_ACTIONS | Definido sempre como verdadeiro quando GitHub Actions estiver executando o fluxo de trabalho. Você pode usar esta variável para diferenciar quando os testes estão sendo executados localmente ou por GitHub Actions. |
GITHUB_ACTOR | Nome da pessoa ou aplicativo que iniciou o fluxo de trabalho. Por exemplo, octocat. |
GITHUB_REPOSITORY | Nome do repositório e o proprietário. Por exemplo, octocat/Hello-World. |
GITHUB_EVENT_NAME | Nome do evento de webhook que acionou o workflow. |
GITHUB_EVENT_PATH | Caminho do arquivo com a carga completa do evento webhook. Por exemplo, /github/workflow/event.json. |
GITHUB_WORKSPACE | Caminho do diretório do espaço de trabalho do GitHub. O diretório de área de trabalho é uma cópia do repositório se o fluxo de trabalho usar a ação actions/checkout. Se você não usar a ação actions/checkout, o diretório estará vazio. Por exemplo, /home/runner/work/my-repo-name/my-repo-name. |
GITHUB_SHA | Commit SHA que acionou o fluxo de trabalho. Por exemplo, ffac537e6cbbf934b08745a378932722df287a53. |
GITHUB_REF | Branch ou ref tag que acionou o fluxo de trabalho. Por exemplo, refs/heads/feature-branch-1. Se não houver branch ou tag disponível para o tipo de evento, a variável não existirá. |
GITHUB_HEAD_REF | Definir somente para eventos de pull request. O nome do branch principal. |
GITHUB_BASE_REF | Definir somente para eventos de pull request. O nome do branch de base. |
GITHUB_SERVER_URL | Retorna a URL do servidor GitHub AE. Por exemplo: https://[hostname]. |
GITHUB_API_URL | Retorna a URL da API. Por exemplo: https://api.[hostname]. |
GITHUB_GRAPHQL_URL | Retorna a URL API do GraphQL. Por exemplo: https://api.[hostname]/graphql. |
Observação: Se você precisar usar o URL de um fluxo de trabalho em um trabalho, você poderá combinar estas variáveis de ambiente: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID
Determinar quando usar variáveis de ambiente padrão ou contextos
GitHub Actions inclui uma coleção de variáveis denominadas contextos e uma coleção similar de variáveis denominadas variáveis de ambiente padrão. Estas variáveis são destinadas a serem usadas em diferentes pontos do fluxo de trabalho:
- Variáveis de ambiente padrão: Essas variáveis existem apenas no executor que está executando seu trabalho. Para obter mais informações, consulte "Variáveis de ambiente padrão".
- Contextos: Você pode usar a maioria dos contextos em qualquer ponto do seu fluxo de trabalho, incluindo quando as variáveis de ambiente padrão estariam indisponíveis. Por exemplo, você pode usar contextos com expressões para realizar o processamento inicial antes que o trabalho seja encaminhado para um executor para execução. Isso permite que você use um contexto com a palavra-chave condicional
ifpara determinar se uma etapa deve ser executada. Assim que o trabalho estiver em execução, você também poderá recuperar as variáveis de contexto do executor que está executando o trabalho, comorunner.os. Para obter mais informações, consulte "Contextos".
O exemplo a seguir demonstra como esses diferentes tipos de variáveis de ambiente podem ser usados juntos em um trabalho:
name: CI
on: push
jobs:
prod-check:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run: echo "Deploying to production server on branch $GITHUB_REF"
Neste exemplo, o comando if verifica o github.ref para determinar o nome do branch atual. Se o nome for refs/heads/main, as etapas subsequentes serão executadas. A verificação if é processada por GitHub Actions, e o trabalho é enviado apenas para o executor se o resultado for verdadeiro. Assim que o trabalho é enviado para o executor, a etapa é executada e refere-se à variável de ambiente $GITHUB_REF do executor.
Convenções de nomenclatura para variáveis de ambiente
Ao definir uma variável de ambiente personalizada, você não poderá usar qualquer um dos nomes de variáveis de ambiente padrão listados acima com o prefixo GITHUB_. Se você tentar substituir o valor de uma dessas variáveis de ambiente padrão, a atribuição será ignorada.
Qualquer variável de ambiente nova que você definir e apontar para um local no sistema de arquivos deve ter um sufixo _PATH. As variáveis padrão HOME e GITHUB_WORKSPACE são exceções a essa convenção porque as palavras "inicial" e "espaço de trabalho" já indicam o local.