Jak wyłączyć niektóre gałęzie w kompilacjach Multibranch Jenkins?

10

Mam ustawione zadanie dla wielu oddziałów, aby uruchomić dowolny oddział z plikiem Jenkins.

Mam kilka opcji, o których mogę pomyśleć, jeśli chcę usunąć gałąź z listy zadań uruchomionych dla potoku wielooddziałowego.

  1. Mogę usunąć gałąź
  2. Mogę usunąć plik Jenkins z tego oddziału

Drugie rozwiązanie jest dobre, z tym wyjątkiem, że muszę zatwierdzić i przekazać to do repozytorium git mojej gałęzi, a jeśli gałąź ta zostanie połączona z inną gałęzią, zdmuchnie plik Jenkinsfile.

Jaki jest najlepszy sposób na wyłączenie tylko niektórych gałęzi potoku multibranchowego?

David West
źródło

Odpowiedzi:

17

Jenkins może filtrować gałęzie w potoku wielobranżowym według nazwy, używając symbolu wieloznacznego lub wyrażenia regularnego.

Jenkins filtruje gałęzie

Casey Vega
źródło
Jakikolwiek sposób, aby to zrobić w pliku Jenkins (więc jest odtwarzalny)?
xjcl
1
Tak, możesz dodać when { anyOf { branch 'master'; branch 'release/**' } }na dowolnym etapie (deklaratywnie) lub if (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}w ramach potoku skryptowego (prawie wszędzie). W przypadku pierwszej opcji jest więcej dostępnych w jenkins.io/doc/book/pipeline/syntax/#when . W każdym razie najlepszym sposobem jest skonfigurowanie tego we wtyczce potoku multibranch, jak podano w odpowiedzi.
biolauri
-1

Po prostu usuń plik Jenkinsfile z gałęzi, dla których nie chcesz mieć odpowiadających zadań gałęzi. Spowoduje to usunięcie zadania w oddziale (oczywiście, jeśli odpowiednio ustawiłeś „Strategię dla sierocych przedmiotów”).

Z perspektywy projektu rurociągu Jenkins Multibranch Pipeline ma to taki sam efekt jak usunięcie gałęzi. Wynika to z tego, że po prostu skanuje w poszukiwaniu gałęzi zawierających Jenkinsfiles jako kryterium, kiedy należy utworzyć (lub usunąć) odpowiednie zadanie w gałęzi.

Cofnij zatwierdzenie, aby przywrócić plik Jenkins, jeśli / kiedy ponownie będziesz potrzebować zadania gałęzi.

timblaktu
źródło
To za dużo pracy. Kiedy tworzysz gałąź i usuwasz plik, zmieniasz historię GIT bez wyraźnego powodu. O wiele lepiej jest filtrować na poziomie Jenkinsa, więc nie musisz nic robić.
Casey Vega