/ Pipeline multi-filial / Jenkins e especificando projetos upstream - jenkins, jenkins-pipeline

Pipeline de multi-filiais Jenkins e especificando projetos upstream - jenkins, jenkins-pipeline

Atualmente, geramos muitos trabalhos em Jenkins em umpor base ramo Git usando o trabalho Jenkins DSL; o plugin multi-branch pipeline parece uma maneira interessante de obter suporte de geração de empregos de primeira classe usando Jenkinsfiles e reduzir a quantidade de Job DSL que mantemos.

Por exemplo nós temos libwidget-server e widget-servidor desenvolver projetos de filiais. Quando a construção libwidget-server termina, o job servidor de widget é acionado (para o ramo de desenvolvimento). Isso se aplica a outros ramos também.

Isso faz uso do Build after other projects are built para acionar após a conclusão de uma compilação upstream (por exemplo, libwidget-server faz com que o widget-server seja construído).

Parece que o plugin de pipeline multi-filial não tem o Build after other projects are built configuração - como poderíamos realizar o acima na construção de pipeline multi-filial?

Respostas:

10 para resposta № 1

Você deve adicionar o nome da ramificação ao seu job upstream (supondo que você esteja usando um pipeline multi-branch para o job upstream também).

Suponha que você tenha uma pasta com duas tarefas, ambas as tarefas de pipeline multi-filial: jobA e jobB; jobB deve acionar depois jobA"s master.

Você pode adicionar este snippet de código a jobB"s Jenkinsfile:

properties([
pipelineTriggers([
upstream(
threshold: "SUCCESS",
upstreamProjects: "../jobA/master"
)
])
])

(Lembre-se que qualquer ramo de jobB aqui vai disparar depois jobA"s mestre!)


3 para resposta № 2

Atualmente, estou tentando fazer com que isso funcione para a nossa implantação. O mais próximo que eu tenho é adicionar o seguinte ao Jenkinsfile a jusante;

properties([
pipelineTriggers([
triggers: [
[
$class: "jenkins.triggers.ReverseBuildTrigger",
upstreamProjects: "some_project", result: hudson.model.Result.SUCCESS
]
]
]),
])

Isso, pelo menos, faz com que Jenkins reconheça que deveria estar desencadeando quando "some_project" é construído, por exemplo, aparece na página "Visualizar configuração".

No entanto, até agora, as builds de "some_project" ainda não acionam o downstream projeto como esperado.

Dito isto, talvez você tenha mais sorte. Deixe-me saber se funciona para você.

(Alguém fez uma pergunta semelhante aqui -> Jenkins: Trigger Pipeline multi-filial na mudança upstream )