Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
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.
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
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".