J'ai un travail multibranches défini pour exécuter n'importe quelle branche avec un fichier Jenkins.
J'ai quelques options auxquelles je peux penser si je veux supprimer une branche de la liste des travaux en cours d'exécution pour le pipeline multi-branches.
- Je peux supprimer la branche
- Je peux supprimer le fichier Jenkins dans cette branche
La deuxième solution est bonne, sauf que j'ai besoin de valider et de pousser cela vers le dépôt git pour ma branche, et si cette branche est fusionnée dans une autre branche, elle supprime le fichier Jenkins.
Quelle est la meilleure façon de désactiver uniquement certaines branches d'un pipeline multibranches?
jenkins-pipeline
David West
la source
la source
when { anyOf { branch 'master'; branch 'release/**' } }
dans n'importe quelle étape (en déclaratif) ouif (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}
dans un pipeline scripté (presque n'importe où). Pour la première option, il y en a plus disponibles dans jenkins.io/doc/book/pipeline/syntax/#when . Quoi qu'il en soit, la meilleure façon est de configurer cela dans le plugin de pipeline multibranches, comme indiqué dans la réponse.Supprimez simplement le fichier Jenkins sur la ou les branches pour lesquelles vous ne souhaitez pas avoir de tâches de branche correspondantes. Cela supprimera le travail de branche (bien sûr, si vous avez correctement défini votre «stratégie d'élément orphelin»).
Du point de vue d'un projet de pipeline multibranches Jenkins, cela a le même effet que la suppression de la branche. En effet, il recherche simplement les branches qui contiennent des fichiers Jenkins comme critère pour savoir quand créer (ou supprimer) un travail de branche correspondant.
Annulez la validation pour restaurer le fichier Jenkins si / quand vous avez à nouveau besoin du travail de branche.
la source