Skip to main content

Usando condições para controlar a execução do trabalho

Impeça que um trabalho seja executado a menos que suas condições sejam atendidas.

Visão geral

Observação: um trabalho ignorado relatará seu status como "Êxito". Ele não impedirá a mesclagem de uma solicitação de pull, mesmo que seja uma verificação necessária.

Use o condicional jobs.<job_id>.if para impedir que um trabalho seja executado, a não ser que uma condição seja atendida. Você pode usar qualquer contexto e expressão compatível para criar uma condicional. Para obter mais informações sobre quais contextos têm suporte nessa chave, confira "Acessar informações contextuais sobre execuções de fluxo de trabalho".

Observação: a condição jobs.<job_id>.if é avaliada antes da aplicação de jobs.<job_id>.strategy.matrix.

Ao usar expressões em um condicional if, opcionalmente, você poderá omitir a sintaxe de expressão ${{ }}, pois o GitHub Actions avalia automaticamente o condicional if como uma expressão. No entanto, essa exceção não se aplica a todos os lugares.

Você sempre deverá usar a sintaxe de expressão ${{ }} ou escapar com '', "" ou () quando a expressão começar com !, já que ! é a notação reservada no formato YAML. Por exemplo:

if: ${{ ! startsWith(github.ref, 'refs/tags/') }}

Para obter mais informações, confira "Avaliar expressões em fluxos de trabalho e ações".

Exemplo: Somente executar o trabalho para um repositório específico

Este exemplo usa if para controlar quando o trabalho production-deploy pode ser executado. Ele só será executado se o repositório for chamado octo-repo-prod e estiver na organização octo-org. Caso contrário, o trabalho será marcado como ignorado.

YAML
name: example-workflow
on: [push]
jobs:
  production-deploy:
    if: github.repository == 'octo-org/octo-repo-prod'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats

Em um trabalho ignorado, você deve ver "Esta marcação foi ignorada".

Nota: em algumas partes do fluxo de trabalho, você não pode usar variáveis de ambiente. Em vez disso, você pode usar contextos para acessar o valor de uma variável de ambiente. Para obter mais informações, confira "Armazenar informações em variáveis".