Variáveis de ambiente

GitHub define as variáveis do ambiente para cada execução do fluxo de trabalho GitHub Actions. Você também pode definir variáveis de ambiente personalizadas no seu arquivo do fluxo de trabalho.

GitHub Actions está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub AE. GitHub Actions não está disponível para repositórios privados pertencentes a contas usando os planos de legado por repositório.

Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.

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 ambienteDescrição
CIDefinido sempre como verdadeiro.
GITHUB_WORKFLOWNome do fluxo de trabalho.
GITHUB_RUN_IDUm 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_NUMBERUm 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_JOBO job_id do trabalho atual.
GITHUB_ACTIONIdentificador único (id) da ação.
GITHUB_ACTION_PATHO 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_ACTIONSDefinido 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_ACTORNome da pessoa ou aplicativo que iniciou o fluxo de trabalho. Por exemplo, octocat.
GITHUB_REPOSITORYNome do repositório e o proprietário. Por exemplo, octocat/Hello-World.
GITHUB_EVENT_NAMENome do evento de webhook que acionou o workflow.
GITHUB_EVENT_PATHCaminho do arquivo com a carga completa do evento webhook. Por exemplo, /github/workflow/event.json.
GITHUB_WORKSPACECaminho 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_SHACommit SHA que acionou o fluxo de trabalho. Por exemplo, ffac537e6cbbf934b08745a378932722df287a53.
GITHUB_REFBranch 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_REFDefinir somente para eventos de pull request. O nome do branch principal.
GITHUB_BASE_REFDefinir somente para eventos de pull request. O nome do branch de base.
GITHUB_SERVER_URLRetorna a URL do servidor GitHub Enterprise Server. Por exemplo: https://[hostname].
GITHUB_API_URLRetorna a URL da API. Por exemplo: http(s)://[hostname]/api/v3.
GITHUB_GRAPHQL_URLRetorna a URL API do GraphQL. Por exemplo: http(s)://[hostname]/api/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 if para 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, como runner.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.

Esse documento ajudou você?Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.