Skip to main content
Skip to content

Referência de contextos

Encontre informações sobre contextos disponíveis em GitHub Actions fluxos de trabalho, incluindo propriedades disponíveis, métodos de acesso e exemplos de uso.

Contextos disponíveis

Nome do contextoTipoDescrição
githubobjectInformações sobre a execução do fluxo de trabalho. Para obter mais informações, confira Contexto github.
envobjectContém variáveis definidas em um fluxo de trabalho, um trabalho ou uma etapa. Para obter mais informações, confira Contexto env.
varsobjectContém variáveis definidas nos níveis de repositório, organização ou ambiente. Para obter mais informações, confira Contexto vars.
jobobjectInformações sobre o trabalho atualmente em execução. Para obter mais informações, confira Contexto job.
jobsobjectSomente para fluxos de trabalho reutilizáveis, contém saídas de trabalhos do fluxo de trabalho reutilizável. Para obter mais informações, confira Contexto jobs.
stepsobjectInformações sobre as etapas que foram executadas no trabalho atual. Para obter mais informações, confira Contexto steps.
runnerobjectInformações sobre o executor do trabalho atual. Para obter mais informações, confira Contexto runner.
secretsobjectContém os nomes e valores de segredos que estão disponíveis para uma execução de fluxo de trabalho. Para obter mais informações, confira Contexto secrets.
strategyobjectInformações sobre a estratégia de execução da matriz para o trabalho atual. Para obter mais informações, confira Contexto strategy.
matrixobjectContém as propriedades da matriz definidas no fluxo de trabalho que se aplicam ao trabalho atual. Para obter mais informações, confira Contexto matrix.
needsobjectContém as saídas de todos os trabalhos que são definidos como uma dependência do trabalho atual. Para obter mais informações, confira Contexto needs.
inputsobjectContém as entradas de um fluxo de trabalho reutilizável ou disparado manualmente. Para obter mais informações, confira Contexto inputs.

Como parte de uma expressão, você pode acessar informações de contexto usando uma das duas sintaxes.

  • Sintaxe de índice: github['sha']
  • Sintaxe de desreferência de propriedade: github.sha

Para usar a sintaxe de desreferência de propriedade, o nome da propriedade deve começar com uma letra _ ou e conter apenas caracteres alfanuméricos, - ou _.

Se você tentar desreferenciar uma propriedade inexistente, ela será avaliada como uma cadeia de caracteres vazia.

Determinar quando usar contextos

GitHub Actions inclui uma coleção de variáveis chamadas contextos e uma coleção semelhante de variáveis chamadas variáveis 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 de ambiente existem apenas no executor que está executando seu trabalho. Para saber mais, confira Referência de variáveis.
  • Contextos: você pode usar a maioria dos contextos em qualquer ponto do fluxo de trabalho, inclusive quando as variáveis padrão não estão disponíveis. Por exemplo, você pode usar contextos com expressões para executar 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 if condicional para determinar se uma etapa deve ser executada. Depois que o trabalho estiver em execução, você também poderá recuperar variáveis de contexto do executor que está executando o trabalho, como runner.os. Para ver detalhes do local em que você pode usar vários contextos em um fluxo de trabalho, confira Disponibilidade de contexto.

O seguinte exemplo demonstra como esses diferentes tipos de variáveis podem ser usados juntos em um trabalho:

YAML
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, a instrução if verifica o contexto github.ref para determinar o nome do branch atual. Se o nome for refs/heads/main, as etapas seguintes serão executadas. A if verificação é processada por GitHub Actions, e o trabalho só é enviado para o executor se o resultado for true. Depois que o trabalho é enviado para o executor, a etapa é executada e refere-se à variável $GITHUB_REF do executor.

Disponibilidade do contexto

Contextos diferentes estão disponíveis durante a execução de um fluxo de trabalho. Por exemplo, o contexto secrets só pode ser usado em alguns lugares de um trabalho.

Além disso, algumas funções só podem ser utilizadas em determinados lugares. Por exemplo, a função hashFiles não está disponível em todos os lugares.

A tabela a seguir lista as restrições nas quais cada contexto e função especial podem ser utilizados em um fluxo de trabalho. Os contextos listados estão disponíveis apenas para a chave de fluxo de trabalho fornecida e não podem ser usados em nenhum outro lugar. A menos que esteja listado abaixo, uma função pode ser usada em qualquer lugar.

Chave de fluxo de trabalhoContextoFunções especiais
run-namegithub, inputs, varsNenhum
concurrencygithub, inputs, varsNenhum
envgithub, secrets, inputs, varsNenhum
jobs.<job_id>.concurrencygithub, needs, strategy, matrix, inputs, varsNenhum
jobs.<job_id>.containergithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.container.credentialsgithub, needs, strategy, matrix, env, vars, secrets, inputsNenhum
jobs.<job_id>.container.env.<env_id>github, needs, strategy, matrix, job, runner, env, vars, secrets, inputsNenhum
jobs.<job_id>.container.imagegithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.continue-on-errorgithub, needs, strategy, vars, matrix, inputsNenhum
jobs.<job_id>.defaults.rungithub, needs, strategy, matrix, env, vars, inputsNenhum
jobs.<job_id>.envgithub, needs, strategy, matrix, vars, secrets, inputsNenhum
jobs.<job_id>.environmentgithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.environment.urlgithub, needs, strategy, matrix, job, runner, env, vars, steps, inputsNenhum
jobs.<job_id>.ifgithub, needs, vars, inputsalways, cancelled, success, failure
jobs.<job_id>.namegithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.outputs.<output_id>github, needs, strategy, matrix, job, runner, env, vars, secrets, steps, inputsNenhum
jobs.<job_id>.runs-ongithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.secrets.<secrets_id>github, needs, strategy, matrix, secrets, inputs, varsNenhum
jobs.<job_id>.servicesgithub, needs, strategy, matrix, vars, inputsNenhum
jobs.<job_id>.services.<service_id>.credentials