TransWikia.com

Encadeamento de pipelines

Stack Overflow em Português Asked by Gabriel Hardoim on January 6, 2022

Tenho dois jobs no jenkins (A e B). Oq preciso é que o job A, após terminar, inicie a execução do job B. Sendo que preciso da aprovação de um usuário para que isso ocorra.

//algo do tipo
executarJobB = input(
    message: "Devo iniciar o job B",
    ok: "Encadear",
    submitterParameter: 'executarJobB')

if (executarJobB) {
    build job: "B", parameters: [[$class: 'String', name: 'image', value: $image ]]
}
  • Como posso fazer isso?
  • Como executar esse código após o pipeline A ter sido executado com sucesso?

One Answer

A variavel executarJobB não é necessaira. Se o usuario aceitar com Encadear o job continua e passa direto pro build.
Porém se ele cancelar, o build falha. Então talvez você nao queria isso, o que pode ser resolvido com um try-catch.

Para verificar se um job foi executado com sucesso até um determinado momento voce pode fazer isso, que retorna um boolean:

Deixando teu código assim:

if (currentBuild.resultIsBetterOrEqualTo("SUCCESS")) {
    try {
       input message: "Devo iniciar o job", ok: "Encadear"

       build job: "B", parameters: [[$class: 'String', name: 'image', value: $image]]
   } catch (ignored) {
       echo "Job B não foi lançado pelo usuário"
   }
} 

Answered by Pedro Witzel on January 6, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP