- Inclua detalhes sobre seu objetivo:
Eu gostaria que um jobB do stageB fosse executado somente quando TODOS os jobs do stageA fossem concluídos.
stageA stageB
job01A jobB
job02A
...
job58A
- O que eu tentei:
Para alcançar esse resultado, estou usando atualmente a palavra-chave "needs", que está funcionando, mas o gitlab ci yml agora está assim:
jobB
stage: stageB
needs:
- job: job01A
- job: job02A
...
- job: job58A
Esta lista ou a matriz são longas.
- Pergunta:
Como posso escrever algo que diga ao jobB para ser executado somente quando todos os trabalhos do estágio A estiverem concluídos, sem ter que escrever explicitamente cada um dos trabalhos? Algo como:
jobB
stage: stageB
needs:
- all jobs from stageA
Os pipelines no GitLab são sequenciais, portanto, se você tiver uma série de estágios, cada trabalho em um estágio será executado em paralelo (a menos que especificado explicitamente) e quando todos os trabalhos em seu estágio terminarem, o próximo estágio será iniciado.
Você não precisa adicionar a
needs
palavra-chave, a menos que haja necessidade de um relacionamento mais complexo. No seu exemplo:O GitLab executará todos os trabalhos a partir de
StageA
e quando eles forem bem-sucedidos - ou falharem, mas comallow_failure
- entãoStageB
começará.Também encontrei este artigo que acho que você pode achar interessante para ler.