Contextos disponíveis
| Nome do contexto | Tipo | Descrição |
|---|---|---|
github | object | Informações sobre a execução do fluxo de trabalho. Para obter mais informações, confira Contexto github. |
env | object | Contém variáveis definidas em um fluxo de trabalho, um trabalho ou uma etapa. Para obter mais informações, confira Contexto env. |
vars | object | Contém variáveis definidas nos níveis de repositório, organização ou ambiente. Para obter mais informações, confira Contexto vars. |
job | object | Informações sobre o trabalho atualmente em execução. Para obter mais informações, confira Contexto job. |
jobs | object | Somente 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. |
steps | object | Informações sobre as etapas que foram executadas no trabalho atual. Para obter mais informações, confira Contexto steps. |
runner | object | Informações sobre o executor do trabalho atual. Para obter mais informações, confira Contexto runner. |
secrets | object | Conté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. |
strategy | object | Informações sobre a estratégia de execução da matriz para o trabalho atual. Para obter mais informações, confira Contexto strategy. |
matrix | object | Contém as propriedades da matriz definidas no fluxo de trabalho que se aplicam ao trabalho atual. Para obter mais informações, confira Contexto matrix. |
needs | object | Conté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. |
inputs | object | Conté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
ifcondicional 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, comorunner.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:
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"
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 trabalho | Contexto | Funções especiais |
|---|---|---|
run-name | github, inputs, vars | Nenhum |
concurrency | github, inputs, vars | Nenhum |
env | github, secrets, inputs, vars | Nenhum |
jobs.<job_id>.concurrency | github, needs, strategy, matrix, inputs, vars | Nenhum |
jobs.<job_id>.container | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.container.credentials | github, needs, strategy, matrix, env, vars, secrets, inputs | Nenhum |
jobs.<job_id>.container.env.<env_id> | github, needs, strategy, matrix, job, runner, env, vars, secrets, inputs | Nenhum |
jobs.<job_id>.container.image | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.continue-on-error | github, needs, strategy, vars, matrix, inputs | Nenhum |
jobs.<job_id>.defaults.run | github, needs, strategy, matrix, env, vars, inputs | Nenhum |
jobs.<job_id>.env | github, needs, strategy, matrix, vars, secrets, inputs | Nenhum |
jobs.<job_id>.environment | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.environment.url | github, needs, strategy, matrix, job, runner, env, vars, steps, inputs | Nenhum |
jobs.<job_id>.if | github, needs, vars, inputs | always, cancelled, success, failure |
jobs.<job_id>.name | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.outputs.<output_id> | github, needs, strategy, matrix, job, runner, env, vars, secrets, steps, inputs | Nenhum |
jobs.<job_id>.runs-on | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.secrets.<secrets_id> | github, needs, strategy, matrix, secrets, inputs, vars | Nenhum |
jobs.<job_id>.services | github, needs, strategy, matrix, vars, inputs | Nenhum |
jobs.<job_id>.services.<service_id>.credentials |