/ / Jenkins pipeline multi-branches et spécification de projets en amont - Jenkins, Jenkins-pipeline

Jenkins pipeline multi-branches et spécification de projets en amont - Jenkins, Jenkins-pipeline

Nous générons actuellement beaucoup d'emplois Jenkins sur unpar branche Git utilisant l’emploi DSL de Jenkins; le plug-in de pipeline à plusieurs branches semble être un moyen intéressant d’obtenir un support de première classe en matière de génération d’emplois à l’aide de Jenkinsfiles et de réduire la quantité de Job DSL que nous gérons.

Par exemple nous avons libwidget-server et widget-serveur développer des projets de branche. Lorsque la construction de libwidget-server est terminée, le travail du serveur de widgets est déclenché (pour la branche develop). Cela s'applique aussi aux autres branches.

Cela fait usage de la Build after other projects are built déclencher à la fin d'une construction en amont (par exemple, libwidget-server entraîne la construction de widget-server).

Il semble que le plugin de pipeline multi-branches manque de Build after other projects are built réglage - comment accomplirions-nous ce qui précède dans la construction du pipeline multi-branches?

Réponses:

10 pour la réponse № 1

Vous devez ajouter le nom de la branche à votre travail en amont (en supposant que vous utilisez également un pipeline à plusieurs branches pour le travail en amont).

Supposons que vous ayez un dossier avec deux tâches, les deux tâches de pipeline multi-branches: jobA et jobB; jobB devrait déclencher après jobA"s master.

Vous pouvez ajouter cet extrait de code à jobB"Jenkinsfile:

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

(Remarquez que toute branche de jobB ici va se déclencher après jobA"s maître!)


3 pour la réponse № 2

J'essaie actuellement de faire en sorte que cela fonctionne pour notre déploiement. Le plus proche que j’ai eu est d’ajouter ce qui suit au fichier Jenkins en aval;

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

Cela oblige au moins Jenkins à reconnaître que cela devrait déclencher "some_project" get "s" est construit dans la mesure où il apparaît dans la page "Afficher la configuration".

Cependant, jusqu'à présent, les constructions de "some_project" ne déclenchent toujours pas l'aval. projet comme prévu.

Cela étant dit, vous aurez peut-être plus de chance. Dites-moi si cela marche pour vous.

(Quelqu'un d'autre a posé une question similaire ici -> Jenkins: Déclenche un pipeline multi-branches sur un changement en amont )