Jenkins tips and tricks

Jenkins

 1,242 

Jenkins tips and tricks dla testerów, to artykuł o kilku przydatnych poradach dla osób korzystających z Jenkinsa. Pokażemy jak proste rozwiązania mogą Wam pomóc w codziennej pracy. Skupimy się głównie na podpowiedziach z punktu widzenia testera, jednak być może i inne osoby skorzystają z porad. 

Korzystaj z pluginów

Jenkins jest narzędziem rozbudowanym, który posiada sporo opcji i dodatków. Dzięki tworzonym pluginom możemy ułatwiać sobie pracę, czy też po prostu rozszerzyć możliwości Jenkinsa. W niniejszym dziale opisaliśmy wtyczki Jenkinsowe, dlatego zainteresowanych odsyłam do właściwego wpisu. Dla osób z humorystycznym podejściem zapraszamy do luźniejszych pluginów. 

Do podstawowych i polecanych pluginów dla testerów możemy wymienić m.in

  • Result Test Analyzer;
  • Editable Email Notification;
  • AnsiColor;
  • Test Stability History;
  • Priority Sorter

Osobne slavy

Korzystasz z Jenkinsa, masz wiele testów automatycznych, deweloperzy zwrócili Ci uwagę, że zapychasz im wątki? Być może warto by Twoje testy automatyczne były uruchamiane na osobnym slave z odrębnymi wątkami?  Oczywiście jest to możliwe. Jakie będą korzyści z takiego działania:

  • możecie podzielić sobie slavy wg. kategorii uruchamianych elementów;
  • nie blokujecie sobie wzajemnie wątków;
  • łatwiej będzie priorytetyzować joby w ramach slave;

Jeżeli macie stworzony dodatkowy slave poza masterem, to możecie ustawić jakie konkretnie joby są uruchamiane. Wystarczy w ramach konfiguracji joba ustawić interesujący Was slave i gotowe.

W ramach opcji w kategorii Restrict where this project can be run, możecie przeczytać różnego rodzaju rozwiązania, które będą najlepsze dla Waszego środowiska. 

Pamiętaj też by nie obciążać zadaniami mastera, gdyż odpowiada on za pracę całego Jenkinsa. 

Opisuj joby, również z html

Standardowo job Jenkinsowy posiada jedynie tytuł. Jeżeli chcesz, możesz dodać opis poprzez button edit description. Dzięki takiemu podejściu, każda osoba wchodząca na joba, będzie wiedziała w jakimś zakresie co jest w jego ramach wykonywane. Możemy również spowodować by dodawać do jobów opisy z tagami <html>, co pozwoli np. dodawanie linków do dokumentacji, czy innych miejsc które uznacie za niezbędne. 

Zapisywanie buildów

Jeżeli uruchamiamy testy w ramach regresji, zapewne chcemy mieć możliwość spojrzeć we wcześniejsze buildy, co dokładnie nie działało. Z pomocą przychodzi nam konfiguracja i checkbox Discard old builds gdzie w ramach strategii możemy wpisać interesującą liczbę dni i ilość przechowywanych buildów. 

Tutaj widzimy, że nasze buildy będą przechowywane przez 7 dni i/lub 50 ostatnich buildów będziemy mieli zachowanych. Wszystko zależy od Waszych ustawień. Dzięki temu, np. po jakimś długim weekendzie nie utracicie historii buildów by zweryfikować, co np. działało niestabilnie w trakcie Waszej nieobecności. 

Jeżeli zdarzy Wam się, że jakiś build był wyjątkowy i chcecie go zachować na dłużej wystarczy wejść w danego builda. Następnie w prawym górnym rogu znajdziecie opcję Keep this build forever, dzięki czemu mimo upływu okresu przechowywania, logi pozostaną dostępne. 

Jest jeszcze możliwość wysyłania plików z logami na maila, także wówczas na swojej skrzynce możesz zachować niezbędne informacje. Wystarczy skorzystać z wtyczki Editable Email Notification o której pisaliśmy tutaj

Twórz nowe widoki

Na Jenkinsie mamy domyślnie widok obejmujący wszystkie joby jenkinsowe. W początkowym etapie pracy z tym narzędzie nie jest to jakiś problem, jednak wraz z rozwojem ilości projektów warto zastanowić się, czy nie zrobić sobie odrębnych widoków dla projektów. Tworząc swój widok, po lewej stronie w menu klikamy w przycisk New View. Następnie otrzymujemy widok z którego wybieramy to co nas interesuje.

Po stworzeniu swojego widoku, w łatwy sposób będziesz mógł przeglądać swoje joby w dedykowanym oknie. Pamiętaj tylko, by po dodaniu nowego joba, dodawać go sobie ręcznie poprzez Edit View swojego widoku. 

Opcja ta będzie szczególnie przydatna gdy Jenkins w ramach firm jest używany przez kilka zespołów jednocześnie, bądź też korzysta się z niego przy wielu projektach. 

Priorytetyzowanie jobów

Na samym początku wpisu, wskazywaliśmy o odrębnych slave i wątkach dla różnych typów jobów. Wiadomym jest też, że część naszych zadań jest ważniejsza, a inne są mniej priorytetowe. Przy ograniczonej liczbie wątków zadania mogą wpadać do Build Queue i oczekiwać na zwolnienie slotu. W przypadku gdy Twoje ważne zadanie wpadnie w kolejkę np. na 5 pozycję, musi oczekiwać na wykonanie pozostałych. Oczywiście możesz manualnie anulować joby w kolejce by przesunąć swoje zadanie na pierwsze miejsce w oczekiwanych. 

Lepszym rozwiązaniem jest skorzystanie z wtyczki Priority Sorter. Dzięki temu dodatkowi ustalicie jakie zadania są najważniejsze i które będą mogły wykonywać się bardziej priorytetowo od innych. Można to robić np. poprzez dodanie całego widoku. Przykładowo widok obejmujący bieżący projekt, będzie bardziej priorytetowy niż widok odnoszący się do projektu starszego. 

Parametryzowanie jobów

Pisząc swoje testy, możemy kreować je w taki sposób by były one parametryzowane później z poziomu Jenkinsa bez konieczności każdorazowych zmian w kodzie. Z pomocą przychodzi nam opcja This project is parameterized. W ramach tej opcji, możemy dopracować tak test, by móc sobie parametryzować testowanie wg. określonego stage, np.:

Stosować możecie to dobrowolnie, niekoniecznie z podziałem na stage. Przypuśćmy, że pracujecie przy projekcie, gdzie dane są powielane na określonym wzorcu. Wówczas walidacja będzie wprost z Jenkinsa.

Podsumowanie

Jenkins tips and tricks to kilka porad dla osób korzystających z Jenkinsa. Te kilka porad, być może pomoże Wam w przyjemniejszym korzystaniu z Jenkinsa. O innych kwestiach związanych z Jenkinsem piszemy niniejszym dziale.