web-dev-qa-db-fra.com

Jenkins supprime des travaux lors de la suppression d'une branche via l'indexation de branche

Existe-t-il un moyen de dire à Jenkins (2.2) de supprimer les jobs des branches qui ont été supprimées? Actuellement, mon moniteur de build se remplit de branches car les jobs ne sont pas supprimés. Existe-t-il un paramètre pour déclencher ce comportement ou doit-il être classé comme bogue?

12
ligi

Étant donné que vous utilisez la dernière version de Jenkins, envisagez de passer vos travaux à configuration du pipeline multibranch .

La fonctionnalité Workflow Multibranch (fournie par le plug-in de workflow) offre les capacités clés suivantes:

  • Création automatique de Workflow (travail) dans Jenkins par nouvelle branche dans le référentiel (en supposant que les webhooks sont enregistrés de GH à Jenkins).

  • Build spécifique à cette branche enfant et à son historique unique de modifications et de build scm.

  • Élagage/suppression automatique des travaux pour les branches supprimées du référentiel, selon les paramètres.

  • Flexibilité pour configurer individuellement les propriétés de branche, en remplaçant les propriétés parent, si nécessaire.

[~ # ~] éditez [~ # ~] : vérifiez les paramètres "Supprimer les anciens éléments" pour votre pipeline. Si vous avez un `` nombre maximal d'anciens éléments '' non nul, alors, si votre branche a moins de versions que ce nombre, elle ne sera jamais supprimée! Vous pouvez même voir cela dans les journaux:

Will not remove US12345 as it is only #1 in the list
Will not remove US23456 as it is only #2 in the list
Will not remove US34567 as it is only #3 in the list

[~ # ~] edit [~ # ~] : Vous pouvez également tenter votre chance en ajoutant un comportement supplémentaire nommé "Prune stale remote-tracking branches" ( "Comportements" -> "Ajouter" -> Sélectionner dans la liste déroulante).

16
madhead

1) Allez à Manage Jenkins -> Global Tool Configuration -> Git -> Add Git -> Choose JGit.

2) Accédez ensuite à la configuration de votre pipeline multibranches et choisissez JGit à la place Default sous Branch Sources -> Git Executable

3) Appuyez sur Branch Indexing -> Run now

Les vieilles branches devraient disparaître maintenant

5
StasKolodyuk