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?

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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.