2016-07-19 10 views
5

Obecnie generujemy wiele zadań Jenkins na podstawie oddziału Git za pomocą Jenkins pracy DSL; wielooddziałowa wtyczka potoku wygląda interesująco, aby potencjalnie uzyskać najlepszą obsługę generowania prac za pomocą Jenkinsfiles i zmniejszyć ilość utrzymywanego DSL-u.Rurociąg wielojęzykowy Jenkins i określanie projektów upstream

Na przykład: mamy serwer WWW libwidget i widget-server opracowywanie projektów branżowych. Po zakończeniu kompilacji libwidget-server uruchamiane jest zadanie widget-server (dla gałęzi rozwijającej). Dotyczy to również innych oddziałów.

To powoduje użycie parametru Build after other projects are built po zakończeniu kompilacji na wyższym poziomie (np. Serwer libwidget powoduje zbudowanie serwera widżetów).

Wygląda na to, że wielodrożna wtyczka potoku nie ma ustawienia Build after other projects are built - w jaki sposób osiągnęlibyśmy powyższe w budowaniu potoku wielooddziałowego?

Odpowiedz

8

Należy dodać nazwę oddziału do upstream pracy (przy założeniu, że używasz rurociągu wielooddziałowych dla upstream pracy zbyt).

Załóżmy, że masz folder z dwoma zadaniami, oba zadania z wieloma oddziałami: jobA i jobB; jobB powinien wywołać po jobA 's master.

Możesz dodać ten fragment kodu do jobB „s Jenkinsfile:

properties([ 
    pipelineTriggers([ 
    upstream(
     threshold: 'SUCCESS', 
     upstreamProjects: '../jobA/master' 
    ) 
    ]) 
]) 

(pamiętać, że każdy oddział jobB tutaj spowoduje po jobA!” S mistrza)

+0

W upstreams w naszym przypadku nie są rurociągi wielobranżowych ale jestem Zrobię z tym kilka testów. Nadal muszę też zajrzeć do sugestii @ cscutchera powyżej. –

+0

Działa doskonale w przypadku zadań wielostronicowych, ale wydaje się nieobsługiwana w przypadku wtyczki źródłowej Bitbucket. – luka5z

+0

Możesz odwoływać się do innych zadań z zakresu pracy z wieloma ścieżkami przy użyciu bezwzględnych lub względnych ścieżek '/ t/multibranch-job/master, ../multibranch-job/master, test, funkcja% 252Ftest" ' – luka5z

3

Obecnie próbuję dostać się to do pracy dla naszego wdrożenia. Najbliższe, jakie mam, to dodanie do dolnego Jenkinsfile;

properties([ 
    pipelineTriggers([ 
     triggers: [ 
      [ 
       $class: 'jenkins.triggers.ReverseBuildTrigger', 
       upstreamProjects: "some_project", result: hudson.model.Result.SUCCESS 
      ] 
     ] 
    ]), 
]) 

że przynajmniej dostaje Jenkins, aby potwierdzić, że należy wyzwalanie gdy „some_project” get wbudowanego tj pojawi się na stronie „Zobacz Konfiguracja”.

Jednak dotychczasowe wersje projektu "some_project" nadal nie uruchamiają dalszego projektu zgodnie z oczekiwaniami.

Być może będziesz miał więcej szczęścia. Daj mi znać, czy to działa dla Ciebie.

(Ktoś poprosił podobne pytanie tutaj ->Jenkins: Trigger Multi-branch pipeline on upstream change)

+4

Ten pracował dla mnie, kiedy otrzymuje 'result:' with 'threshold:'. Ja również określony oddział dopasowanie rurociągu wielooddziałowej z '„some_project /”+ env.BRANCH_NAME.replaceAll („/”,„% 2F”)' –

Powiązane problemy