Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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.

Observação: GitHub Actions estava disponível para GitHub Enterprise Server 2.22 como um beta limitado. O beta terminou. GitHub Actions está agora geralmente disponível em GitHub Enterprise Server 3.0 ou posterior. Para obter mais informações, consulte as observações sobre a versão GitHub Enterprise Server 3.0.


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 set-env fluxo de trabalho para definir uma variável de ambiente que as seguintes etapas em um trabalho podem usar. O comando do set-env 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 em ações 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_WORKSPACEO caminho do diretório do espaço de trabalho de GitHub está inicialmente vazio. Por exemplo, /home/runner/work/my-repo-name/my-repo-name. A ação actions/checkout irá fazer o check-out dos arquivos, por padrão uma cópia do seu repositório, neste diretório.
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.
RUNNER_NAMEThe name of the runner executing the job.
RUNNER_OSO sistema operacional do executor que está executando o trabalho. Os valores possíveis são: Linux, Windows ou macOS.
RUNNER_TEMPO caminho para um diretório temporário no executor. Este diretório é esvaziado no início e no final de cada trabalho. Observe que os arquivos não serão removidos se a conta de usuário do executor não tiver permissão para excluí-los.
RUNNER_TOOL_CACHEO caminho para o diretório que contém ferramentas pré-instaladas para executores hospedados em GitHub. Para obter mais informações, consulte "Especificações para executores hospedados no GitHub".

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 informações sobre onde você pode usar vários contextos dentro de um fluxo de trabalho, consulte "Disponibilidade de contexto".

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.