No GitHub Actions, defini o pipeline em YAML.
Tenho um job condicional e outro depois, que gostaria de executar depois do job condicional. Mas se o job não executar, então execute-o imediatamente.
Se eu usar:
name: Test conditionals
on:
workflow_dispatch:
env:
DEPLOY_NONPROD_ENV: 'false'
jobs:
conditionalJob:
if: ${{ env.DEPLOY_NONPROD_ENV == 'true' }}
runs-on: 'ubuntu-latest'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Echo message
run: 'echo "Condition evaluated to true"'
dependantJob:
needs: [conditionalJob]
runs-on: 'ubuntu-latest'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Echo message
run: 'echo "Running dependantJob"'
se conditionalJob
for ignorado, então o dependantJob
também será ignorado.
Como fazer para que ele funcione de forma que dependantJob
seja executado imediatamente se conditionalJob
for ignorado e aguarde se for executado?
Na verdade, as respostas na pergunta do comentário não são 100% boas. Nesse caso, você precisa verificar o
result
resultado da primeira tarefa, se ela foi aprovada ou ignorada, mas também precisa adicionar!cancelled()
. Isso deve funcionar:Você pode substituir
!cancelled()
poralways()
, mas o fluxo de trabalho continuará em execução mesmo que você o cancele!