sharpek.net

moje trzy grosze

Integracja Stash (Atlassian) z Jenkinsem

Integracja Stash z serwerem ciągłej integracji Bamboo jest dość prosta, natomiast integracja z Jenkinsem już nie należy do łatwych. Atlassian zapewnie woli by kupować ich rozwiązanie ;-)

W internecie ciężko szukać jakichkolwiek informacji na temat integracji tych dwóch narzędzi. Osobiście nad połączeniem Stash z Jenkinsem spędziłem kilka godzin, ostatecznie udało mi się doprowadzić do takiej sytuacji że Jenkins testuje wszystkie zgłoszone pull requesty.

W Webmarket Atlassian istnieje plugin o nazwie „Stash Webhook to Jenkins” on prócz dodania tak przycisku trigger build, niewiele nam pomoże.

Pierwszą rzeczą jaką należy zrobić to zainstalować plugin do Jenkinsa o nazwie StashNotifier Plugin (więcej informacji można zobaczyć w wiki https://wiki.jenkins-ci.org/display/JENKINS/StashNotifier+Plugin).

Po zainstalowaniu i zrestartowaniu Jenkinsa konfigurujemy go tak jak na zrzucie poniżej. Konfiguracji możemy dokonać per zadanie lub na wszystkie zadania w konfiguracji globalnej.

notify

Od tej pory po każdym build, no Stasha zostanie wysłane powiadomienie z informacją czy pull request/branch jest budowany, czy udało się lub też nie.

Najprostszym sposobem na wykrywanie nowych pull requestów jest konfiguracja GIT Polling tak by był wykonywany np. co 2 minuty.

polling

Ostatnią a zarazem najważniejszą rzeczą jest odpowiednia konfiguracja repozytorium. Robimy to w sposób jak poniżej.

git

Od tej pory Jenkins będzie budował wszystkie branche i pull requesty do dodanego repozytorium.

Ważne! Po ustawieniu „Branches to build” na ** będą budowane wszystkie branche więc jeśli mamy ich naprawdę dużo to trochę to może potrwać. Dodatkowo warto by było zastanowić się nad zamknięciem starych branchy.

Jeśli napotkamy jakieś problemy z pobieraniem kodu z naszego repozytorium, warto zajrzeć do zakładki „Git pooling Log” i zobaczyć czy znajdowane są branche do budowy.

 

Comments

No comments so far.

Leave a Reply

 
(will not be published)
 
 
 
 

Preview: