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.
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.
Ostatnią a zarazem najważniejszą rzeczą jest odpowiednia konfiguracja repozytorium. Robimy to w sposób jak poniżej.
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.
Preview: