Come disabilitare alcune filiali in Multibranch Jenkins Builds?


10

Ho un lavoro multibranch impostato per eseguire qualsiasi ramo con un file Jenkins.

Ho alcune opzioni a cui posso pensare se voglio rimuovere un ramo dall'elenco dei lavori in esecuzione per la pipeline multi-ramo.

  1. Posso cancellare il ramo
  2. Posso eliminare il file Jenkins in quel ramo

La seconda soluzione è buona, tranne per il fatto che ho bisogno di impegnarla e inviarla al repository git per il mio ramo, e se quel ramo viene unito in un altro ramo fa saltare il file Jenkins.

Qual è il modo migliore per disabilitare solo alcuni rami di una pipeline multibranch?

Risposte:


17

Jenkins può filtrare i rami in una pipeline multibranch per nome usando un carattere jolly o un'espressione regolare.

rami del filtro jenkins


Un modo per farlo all'interno di un file Jenkins (quindi è riproducibile)?
xjcl

1
Sì, è possibile aggiungere when { anyOf { branch 'master'; branch 'release/**' } }in qualsiasi fase (in modalità dichiarativa) o if (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}all'interno della pipeline con script (quasi ovunque). Per la prima opzione, ce n'è di più disponibile in jenkins.io/doc/book/pipeline/syntax/#when . Ad ogni modo, il modo migliore è quello di configurarlo nel plugin della pipeline multibranch, come indicato nella risposta.
Biolauri,

-1

È sufficiente eliminare il file Jenkins sul ramo o sui rami per i quali non si desidera avere i lavori di ramo corrispondenti. Questo eliminerà il lavoro di filiale (ovviamente, se hai impostato correttamente la tua "Strategia per gli articoli orfani").

Dal punto di vista di un progetto Jenkins Multibranch Pipeline, questo ha lo stesso effetto dell'eliminazione del ramo. Questo perché è semplicemente la ricerca di rami che contengono Jenkinsfiles come criterio per quando creare (o eliminare) un lavoro di ramo corrispondente.

Ripristinare il commit per ripristinare il file Jenkins se / quando è necessario nuovamente il processo di diramazione.


Questo è troppo lavoro. Quando crei un ramo ed elimini un file stai modificando la cronologia GIT senza motivo. È molto meglio filtrare a livello di Jenkins in modo da non dover fare nulla.
Casey Vega,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.