Jenkins - Szybki przewodnik
Dlaczego Jenkins?
Jenkins to oprogramowanie, które umożliwia continuous integration. Jenkins zostanie zainstalowany na serwerze, na którym odbędzie się centralna kompilacja. Poniższy schemat blokowy przedstawia bardzo prosty przepływ pracy dotyczący działania Jenkinsa.
Czasami razem z Jenkinsem można również zobaczyć skojarzenie Hudson. Hudson to bardzo popularne narzędzie do ciągłej integracji oparte na Javie, opracowane przez Sun Microsystems, które zostało później przejęte przez Oracle. Po przejęciu firmy Sun przez Oracle, na podstawie kodu źródłowego Hudson stworzono fork, który zaowocował wprowadzeniem Jenkinsa.
Co to jest ciągła integracja?
Ciągła integracja to praktyka programistyczna, która wymaga od programistów integracji kodu ze współdzielonym repozytorium w regularnych odstępach czasu. Koncepcja ta miała na celu usunięcie problemu znajdowania późniejszego wystąpienia problemów w cyklu życia kompilacji. Ciągła integracja wymaga od programistów częstych kompilacji. Powszechną praktyką jest to, że za każdym razem, gdy występuje zatwierdzenie kodu, należy wyzwalać kompilację.
wymagania systemowe
JDK | JDK 1.5 lub nowszy |
Pamięć | 2 GB RAM (zalecane) |
Miejsca na dysku | Brak minimalnych wymagań. Zauważ, że ponieważ wszystkie kompilacje będą przechowywane na maszynach Jenkins, należy upewnić się, że dostępna jest wystarczająca ilość miejsca na dysku do przechowywania kompilacji. |
Wersja systemu operacyjnego | Jenkins można zainstalować w systemach Windows, Ubuntu / Debian, Red Hat / Fedora / CentOS, Mac OS X, openSUSE, FReeBSD, OpenBSD, Gentoo. |
Kontener Java | Plik WAR można uruchomić w dowolnym kontenerze obsługującym Servlet 2.4 / JSP 2.0 lub nowszy (przykładem jest Tomcat 5). |
Pobierz Jenkins
Oficjalna strona internetowa Jenkins to Jenkins . Jeśli klikniesz podany link, możesz uzyskać stronę główną oficjalnej witryny Jenkins, jak pokazano poniżej.
Domyślnie do pobrania będzie dostępna najnowsza wersja i wersja pomocy długoterminowej. Wcześniejsze wersje są również dostępne do pobrania. Kliknij kartę Wersja do długoterminowego wsparcia w sekcji pobierania.
Kliknij łącze „Starsza, ale stabilna wersja”, aby pobrać plik wojenny Jenkinsa.
Uruchamiam Jenkins
Otwórz wiersz polecenia. W wierszu polecenia przejdź do katalogu, w którym znajduje się plik jenkins.war. Uruchom następujące polecenie
D:\>Java –jar Jenkins.war
Po uruchomieniu polecenia zostaną uruchomione różne zadania, z których jednym jest wyodrębnienie pliku wojny, które jest wykonywane przez wbudowany serwer sieciowy o nazwie winstone.
D:\>Java –jar Jenkins.war
Running from: D:\jenkins.war
Webroot: $user.home/ .jenkins
Sep 29, 2015 4:10:46 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Gdy przetwarzanie zostanie zakończone bez poważnych błędów, na wyjściu wiersza polecenia pojawi się następujący wiersz.
INFO: Jenkins is fully up and running
Dostęp do Jenkinsa
Po uruchomieniu Jenkins można uzyskać dostęp do Jenkinsa z linku - http://localhost:8080
Ten link spowoduje wyświetlenie pulpitu nawigacyjnego Jenkins.
Aby móc skonfigurować Jenkins Tomcat, należy spełnić następujące wymagania wstępne.
Krok 1: weryfikacja instalacji Java
Aby zweryfikować instalację Java, otwórz konsolę i wykonaj następujące polecenie java.
OS | Zadanie | Komenda |
---|---|---|
Windows | Otwórz konsolę poleceń | \> java - wersja |
Linux | Otwórz terminal poleceń | $ java - wersja |
Jeśli Java została poprawnie zainstalowana w twoim systemie, powinieneś otrzymać jedno z poniższych wyników, w zależności od platformy, na której pracujesz.
OS | Wynik |
---|---|
Windows | Wersja Java „1.7.0_60” Środowisko wykonawcze Java (TM) SE (kompilacja 1.7.0_60-b19) Java Hotspot (TM) 64-bitowa maszyna wirtualna serwera (wersja 24.60-b09, tryb mieszany) |
Linux | wersja java „1.7.0_25” Otwórz środowisko wykonawcze JDK (rhel-2.3.10.4.el6_4-x86_64) Otwórz 64-bitową maszynę wirtualną serwera JDK (kompilacja 23.7-b01, tryb mieszany) |
Zakładamy, że czytelnicy tego samouczka mają zainstalowaną Javę 1.7.0_60 w swoim systemie, zanim przejdą do tego samouczka.
Jeśli nie masz Java JDK, możesz go pobrać z linku Oracle
Krok 2: weryfikacja instalacji Java
Ustaw zmienną środowiskową JAVA_HOME tak, aby wskazywała lokalizację katalogu podstawowego, w którym na komputerze jest zainstalowana Java. Na przykład,
OS | Wynik |
---|---|
Windows | Ustaw zmienną środowiskową JAVA_HOME na C: \ ProgramFiles \ java \ jdk1.7.0_60 |
Linux | eksportuj JAVA_HOME = / usr / local / java-current |
Dołącz pełną ścieżkę lokalizacji kompilatora Java do ścieżki systemowej.
OS | Wynik |
---|---|
Windows | Dołącz ciąg; C: \ Program Files \ Java \ jdk1.7.0_60 \ bin do końca zmiennej systemowej PATH. |
Linux | export PATH = $ PATH: $ JAVA_HOME / bin / |
Sprawdź polecenie wersja-java z wiersza poleceń, jak wyjaśniono powyżej.
Krok 3: Pobierz Tomcat
Oficjalna strona internetowa Tomcat to Tomcat . Jeśli klikniesz podany link, możesz uzyskać stronę główną oficjalnej strony tomcat, jak pokazano poniżej.
Przejdź do łącza https://tomcat.apache.org/download-70.cgi aby pobrać plik tomcat.
Przejdź do sekcji „Dystrybucje binarne”. Pobierz plik ZIP z 32-bitowym systemem Windows.
Następnie rozpakuj zawartość pobranego pliku zip.
Krok 4: Konfiguracja Jenkins i Tomcat
Skopiuj plik Jenkis.war, który został pobrany z poprzedniej sekcji i skopiuj go do folderu webapps w folderze tomcat.
Teraz otwórz wiersz polecenia. W wierszu polecenia przejdź do katalogu, w którym znajduje się folder tomcat7. Przejdź do katalogu bin w tym folderze i uruchom plik start.bat
E:\Apps\tomcat7\bin>startup.bat
Gdy przetwarzanie zostanie zakończone bez poważnych błędów, na wyjściu wiersza polecenia pojawi się następujący wiersz.
INFO: Server startup in 1302 ms
Otwórz przeglądarkę i przejdź do linku - http://localhost:8080/jenkins. Jenkins będzie działał na Tomcat.
W tym ćwiczeniu musisz upewnić się, że połączenie internetowe jest obecne z komputera, na którym jest zainstalowany Jenkins. Na pulpicie nawigacyjnym Jenkins (ekran główny) kliknij opcję Zarządzaj Jenkins po lewej stronie.
Na następnym ekranie kliknij opcję „Zarządzaj wtyczkami”.
Na następnym ekranie kliknij kartę Dostępne. Ta zakładka zawiera listę wtyczek, które są dostępne do pobrania. Na karcie „Filtr” wpisz „Wtyczka Git”
Lista zostanie następnie przefiltrowana. Sprawdź opcję wtyczki Git i kliknij przycisk „Zainstaluj bez ponownego uruchamiania”
Następnie rozpocznie się instalacja, a ekran zostanie odświeżony, aby pokazać stan pobierania.
Po zakończeniu wszystkich instalacji uruchom ponownie Jenkins, wydając następujące polecenie w przeglądarce. http://localhost:8080/jenkins/restart
Po ponownym uruchomieniu Jenkinsa Git będzie dostępny jako opcja podczas konfigurowania zadań. Aby zweryfikować, kliknij opcję Nowa pozycja w opcjach menu Jenkins. Następnie wprowadź nazwę zadania, w poniższym przypadku wprowadzona nazwa to „Demo”. Wybierz „Projekt dowolny” jako typ elementu. Kliknij przycisk OK.
Na następnym ekranie, jeśli przejdziesz do sekcji Zarządzanie kodem źródłowym, zobaczysz teraz opcję „Git”.
Krok 1: Pobieranie i konfigurowanie Mavena
Oficjalna strona maven to Apache Maven . Jeśli klikniesz w podany link, możesz uzyskać stronę główną oficjalnej witryny maven, jak pokazano poniżej.
Podczas przeglądania serwisu przejdź do sekcji Pliki i pobierz link do pliku Binary.zip.
Po pobraniu pliku wyodrębnij pliki do odpowiedniego folderu aplikacji. W tym celu pliki maven zostaną umieszczone w E: \ Apps \ apache-maven-3.3.3.
Krok 2: Konfiguracja Jenkins i Maven
Na pulpicie nawigacyjnym Jenkins (ekran główny) kliknij opcję Zarządzaj Jenkins w menu po lewej stronie.
Następnie kliknij „Konfiguruj system” po prawej stronie.
Na ekranie Konfiguruj system przewiń w dół, aż zobaczysz sekcję Maven, a następnie kliknij przycisk „Dodaj Mavena”.
Odznacz opcję „Zainstaluj automatycznie”.
Dodaj dowolną nazwę dla ustawienia i lokalizację MAVEN_HOME.
Następnie kliknij przycisk „Zapisz” na końcu ekranu.
Możesz teraz utworzyć zadanie za pomocą opcji „Projekt Maven”. Na pulpicie nawigacyjnym Jenkins kliknij opcję Nowy element.
Prawdopodobnie widziałeś kilka razy w poprzednich ćwiczeniach, w których musieliśmy konfigurować opcje w Jenkinsie. Poniżej przedstawiono różne opcje konfiguracji w Jenkins.
Można więc uzyskać różne opcje konfiguracji dla Jenkins, klikając opcję „Zarządzaj Jenkinsem” z lewej strony menu.
Zostanie wyświetlony następujący ekran -
Kliknij Konfiguruj system. Poniżej omówiono niektóre z ustawień konfiguracyjnych Jenkinsa, które można przeprowadzić.
Katalog domowy Jenkinsa
Jenkins potrzebuje trochę miejsca na dysku do wykonywania kompilacji i przechowywania archiwów. Można sprawdzić tę lokalizację na ekranie konfiguracji Jenkinsa. Domyślnie jest to ~ / .jenkins, a ta lokalizacja będzie początkowo przechowywana w lokalizacji profilu użytkownika. W odpowiednim środowisku musisz zmienić tę lokalizację na odpowiednią, aby przechowywać wszystkie odpowiednie kompilacje i archiwa. Raz można to zrobić w następujący sposób
Ustaw zmienną środowiskową „JENKINS_HOME” na nowy katalog domowy przed uruchomieniem kontenera serwletu.
Ustaw właściwość systemową „JENKINS_HOME” na kontener serwletu.
Ustaw pozycję środowiska JNDI „JENKINS_HOME” na nowy katalog.
W poniższym przykładzie wykorzystana zostanie pierwsza opcja ustawienia zmiennej środowiskowej „JENKINS_HOME”.
Najpierw utwórz nowy folder E: \ Apps \ Jenkins. Skopiuj całą zawartość z istniejącego ~ / .jenkins do tego nowego katalogu.
Ustaw zmienną środowiskową JENKINS_HOME tak, aby wskazywała lokalizację katalogu podstawowego, w którym na komputerze jest zainstalowana Java. Na przykład,
OS | Wynik |
---|---|
Windows | Ustaw zmienną środowiskową JENKINS_HOME na wybraną lokalizację. Jako przykład możesz ustawić go na E: \ Apps \ Jenkins |
Linux | eksportuj JENKINS_HOME = / usr / local / Jenkins lub wybraną lokalizację. |
Na pulpicie nawigacyjnym Jenkins kliknij Zarządzaj Jenkins z menu po lewej stronie. Następnie kliknij „Konfiguruj system” po prawej stronie.
W katalogu domowym zobaczysz teraz nowy katalog, który został skonfigurowany.
Liczba wykonawców
Odnosi się to do całkowitej liczby równoczesnych wykonań zadań, które mogą mieć miejsce na maszynie Jenkins. Można to zmienić w zależności od wymagań. Czasami zaleca się, aby ta liczba była taka sama, jak liczba procesorów na maszynach, aby uzyskać lepszą wydajność.
Zmienne środowiska
Służy do dodawania niestandardowych zmiennych środowiskowych, które będą miały zastosowanie do wszystkich zadań. Są to pary klucz-wartość, do których można uzyskać dostęp i używać ich w kompilacjach w dowolnym miejscu.
Adres URL Jenkinsa
Domyślnie adres URL Jenkins wskazuje na localhost. Jeśli masz skonfigurowaną nazwę domeny dla swojego komputera, ustaw ją na nazwę domeny, w przeciwnym razie nadpisz localhost adresem IP maszyny. Pomoże to w skonfigurowaniu niewolników i podczas wysyłania linków za pomocą e-maila, ponieważ możesz uzyskać bezpośredni dostęp do adresu URL Jenkinsa za pomocą zmiennej środowiskowej JENKINS_URL, do której można uzyskać dostęp jako $ {JENKINS_URL}.
Powiadomienie e-mail
W obszarze powiadomień e-mail możesz skonfigurować ustawienia SMTP do wysyłania wiadomości e-mail. Jest to wymagane, aby Jenkins łączył się z serwerem poczty SMTP i wysyłał wiadomości e-mail do listy odbiorców.
Aby zarządzać Jenkinsem, kliknij opcję „Zarządzaj Jenkinsem” po lewej stronie menu.
Można więc uzyskać różne opcje konfiguracji dla Jenkins, klikając opcję „Zarządzaj Jenkinsem” z lewej strony menu.
Zostanie wyświetlony następujący ekran -
Niektóre opcje zarządzania są następujące -
Skonfiguruj system
W tym miejscu można zarządzać ścieżkami do różnych narzędzi używanych w kompilacjach, takich jak zestawy JDK, wersje Ant i Maven, a także opcje zabezpieczeń, serwery poczty e-mail i inne szczegóły konfiguracji dotyczące całego systemu. Kiedy wtyczki są zainstalowane. Jenkins doda wymagane pola konfiguracyjne dynamicznie po zainstalowaniu wtyczek.
Załaduj ponownie konfigurację z dysku
Jenkins przechowuje wszystkie szczegóły konfiguracji systemu i zadania tworzenia jako pliki XML, które są przechowywane w katalogu domowym Jenkins. Tutaj również przechowywana jest cała historia kompilacji. Jeśli migrujesz zadania kompilacji z jednej instancji Jenkins do drugiej lub archiwizujesz stare zadania kompilacji, będziesz musiał dodać lub usunąć odpowiednie katalogi zadań kompilacji do katalogu builds Jenkinsa. Nie musisz przełączać Jenkins do trybu offline, aby to zrobić - możesz po prostu użyć opcji „Przeładuj konfigurację z dysku”, aby ponownie załadować system Jenkins i bezpośrednio zbudować konfiguracje zadań.
Zarządzaj wtyczką
Tutaj można zainstalować szeroką gamę wtyczek innych firm bezpośrednio z różnych narzędzi do zarządzania kodem źródłowym, takich jak Git, Mercurial lub ClearCase, do raportowania wskaźników jakości i pokrycia kodu. Wtyczki można instalować, aktualizować i usuwać na ekranie Zarządzaj wtyczkami.
Informacje o systemie
Na tym ekranie wyświetlana jest lista wszystkich bieżących właściwości systemowych Java i systemowych zmiennych środowiskowych. Tutaj można dokładnie sprawdzić, w jakiej wersji Java Jenkins działa, dla jakiego użytkownika działa, i tak dalej.
Poniższy zrzut ekranu przedstawia niektóre informacje o nazwie-wartości dostępne w tej sekcji.
Dziennik systemu
Ekran dziennika systemu to wygodny sposób przeglądania plików dziennika Jenkins w czasie rzeczywistym. Ponownie, głównym zastosowaniem tego ekranu jest rozwiązywanie problemów.
Statystyki obciążenia
Na tej stronie wyświetlane są graficzne dane o tym, jak zajęta jest instancja Jenkins pod względem liczby współbieżnych kompilacji i długości kolejki kompilacji, co daje wyobrażenie o tym, jak długo kompilacje muszą czekać, zanim zostaną wykonane. Te statystyki mogą dać dobry pogląd na to, czy z punktu widzenia infrastruktury wymagana jest dodatkowa pojemność lub dodatkowe węzły kompilacji.
Konsola skryptów
Ten ekran umożliwia uruchamianie skryptów Groovy na serwerze. Jest to przydatne do zaawansowanego rozwiązywania problemów, ponieważ wymaga dobrej znajomości wewnętrznej architektury Jenkins.
Zarządzaj węzłami
Jenkins może obsługiwać kompilacje równoległe i rozproszone. Na tym ekranie możesz skonfigurować, ile chcesz kompilacji. Jenkins działa jednocześnie, a jeśli używasz kompilacji rozproszonych, skonfiguruj węzły kompilacji. Węzeł kompilacji to kolejna maszyna, której Jenkins może używać do wykonywania swoich kompilacji.
Przygotuj się na wyłączenie
Jeśli istnieje potrzeba wyłączenia Jenkinsa lub serwera, na którym działa Jenkins, najlepiej tego nie robić podczas wykonywania kompilacji. Aby czysto zamknąć Jenkins, możesz użyć łącza Przygotuj do zamknięcia, które zapobiega uruchamianiu nowych kompilacji. Ostatecznie, po zakończeniu wszystkich bieżących kompilacji, będzie można zamknąć Jenkinsa w czysty sposób.
W tym ćwiczeniu utworzymy zadanie w Jenkins, które pobiera prostą aplikację HelloWorld, buduje i uruchamia program java.
Step 1 - Przejdź do pulpitu Jenkins i kliknij Nowy element
Step 2- Na następnym ekranie wprowadź nazwę przedmiotu, w tym przypadku nazwaliśmy go Helloworld. Wybierz opcję „Projekt Freestyle”
Step 3 - Pojawi się następujący ekran, w którym można określić szczegóły zadania.
Step 4- Musimy określić lokalizację plików, które mają zostać zbudowane. W tym przykładzie założymy, że skonfigurowano lokalne repozytorium git (E: \ Program), które zawiera plik „HelloWorld.java”. Dlatego przewiń w dół i kliknij opcję Git i wprowadź adres URL lokalnego repozytorium git.
Note- Jeśli repozytorium jest hostowane na Github, możesz również wpisać tutaj adres URL tego repozytorium. Oprócz tego należałoby kliknąć przycisk Dodaj dla poświadczeń, aby dodać nazwę użytkownika i hasło do repozytorium github, aby można było pobrać kod ze zdalnego repozytorium.
Step 5 - Teraz przejdź do sekcji Kompilacja i kliknij Dodaj krok kompilacji → Wykonaj polecenie wsadowe systemu Windows
Step 6 - W oknie poleceń wprowadź następujące polecenia, a następnie kliknij przycisk Zapisz.
Javac HelloWorld.java
Java HelloWorld
Step 7 - Po zapisaniu możesz kliknąć opcję Build Now, aby sprawdzić, czy pomyślnie zdefiniowałeś zadanie.
Step 8- Po zaplanowaniu kompilacji rozpocznie się. Poniższa sekcja Historia kompilacji pokazuje, że trwa kompilacja.
Step 9- Po zakończeniu kompilacji stan kompilacji pokaże, czy kompilacja się powiodła, czy nie. W naszym przypadku następująca kompilacja została pomyślnie wykonana. Kliknij numer 1 w historii kompilacji, aby wyświetlić szczegóły kompilacji.
Step 10 - Kliknij łącze Console Output, aby wyświetlić szczegóły kompilacji
Oprócz kroków pokazanych powyżej istnieje wiele sposobów tworzenia pracy kompilacji, dostępnych jest wiele opcji, co sprawia, że Jenkins jest tak fantastycznym narzędziem do ciągłego wdrażania.
Jenkins zapewnia funkcjonalność dla Junit i zapewnia szereg wtyczek do testów jednostkowych dla innych technologii, na przykład MSTest dla testów jednostkowych .Net. Jeśli przejdziesz do linkuhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin poda listę dostępnych wtyczek do testów jednostkowych.
Przykład testu Junit w Jenkins
Rozważymy następujący przykład
- Prosta klasa HelloWorldTest oparta na Junit.
- Ant jako narzędzie kompilacji w Jenkins, aby odpowiednio zbudować klasę.
Step 1 - Przejdź do pulpitu Jenkins i kliknij istniejący projekt HelloWorld i wybierz opcję Konfiguruj
Step 2 - Przejdź do sekcji Dodaj krok kompilacji i wybierz opcję Wywołaj Ant.
Step 3 - Kliknij przycisk Zaawansowane.
Step 4 - W sekcji pliku kompilacji wprowadź lokalizację pliku build.xml.
Step 5 - Następnie kliknij opcję Dodaj opcję post-build i wybierz opcję „Publikuj raport wyników testu Junit”
Step 6- W plikach XML raportów z testów wprowadź lokalizację, jak pokazano poniżej. Upewnij się, że Raporty to folder utworzony w obszarze roboczym projektu HelloWorld. „* .Xml” w zasadzie mówi Jenkinsowi, aby pobrał wynikowe pliki xml, które są tworzone przez uruchamianie przypadków testowych Junit. Te pliki xml, które następnie są konwertowane na raporty, które można przeglądać później.
Po zakończeniu kliknij opcję Zapisz na końcu.
Step 7 - Po zapisaniu możesz kliknąć opcję Build Now.
Po zakończeniu kompilacji stan kompilacji pokaże, czy kompilacja się powiodła, czy nie. W informacjach o wynikach kompilacji zauważysz teraz dodatkową sekcję o nazwie Wynik testu. W naszym przypadku wprowadziliśmy negatywny przypadek testowy, tak aby wynik zawiódł jako przykład.
Można przejść do wyjścia konsoli, aby zobaczyć dalsze informacje. Ale co jest bardziej interesujące, jeśli klikniesz na Wynik testu, zobaczysz teraz szczegóły wyników testu.
Jedną z podstawowych zasad Continuous Integration jest to, że kompilacja powinna być weryfikowalna. Musisz być w stanie obiektywnie określić, czy dana kompilacja jest gotowa do przejścia do następnego etapu procesu budowania, a najwygodniejszym sposobem jest użycie testów automatycznych. Bez odpowiednich testów automatycznych musisz zachować wiele artefaktów kompilacji i przetestować je ręcznie, co nie jest zgodne z duchem ciągłej integracji. Poniższy przykład pokazuje, jak używać Selenium do uruchamiania automatycznych testów internetowych.
Step 1 - Przejdź do Zarządzaj wtyczkami.
Step 2- Znajdź wtyczkę Hudson Selenium i wybierz instalację. Uruchom ponownie instancję Jenkins.
Step 3 - Przejdź do Konfiguruj system.
Step 4 - Skonfiguruj słoik serwera selenium i kliknij przycisk Zapisz.
Note- Plik słoika selenu można pobrać z lokalizacji SeleniumHQ
Kliknij pobieranie dla samodzielnego serwera Selenium.
Step 5 - Wróć do pulpitu nawigacyjnego i kliknij opcję Konfiguruj dla projektu HelloWorld.
Step 6 - Kliknij Dodaj krok kompilacji i wybierz opcję „SeleniumHQ htmlSuite Run”
Step 7- Dodaj niezbędne szczegóły testu selenu. Tutaj plik suiteFile to TestSuite wygenerowany przy użyciu Selenium IDE. Kliknij Zapisz i wykonaj kompilację. Teraz post build uruchomi sterownik selenu i wykona test html.
Jenkins jest wyposażony w gotową funkcję dodawania powiadomienia e-mail dla projektu kompilacji.
Step 1- Konfiguracja serwera SMTP. Idź do Zarządzaj Jenkins → Konfiguruj system. Przejdź do sekcji Powiadomienie e-mail i wprowadź wymagane dane serwera SMTP oraz sufiks adresu e-mail użytkownika.
Step 2- Skonfiguruj odbiorców w projekcie Jenkins - Podczas konfigurowania dowolnego projektu kompilacji Jenkinsa na końcu jest możliwość dodania odbiorców, którzy otrzymają powiadomienia e-mail o niestabilnych lub uszkodzonych kompilacjach. Następnie kliknij przycisk Zapisz.
Oprócz domyślnych na rynku dostępne są również wtyczki powiadomień. Przykładem jest wtyczka powiadomień firmy Tikal Knowledge, która umożliwia wysyłanie powiadomień o statusie pracy w formatach JSON i XML. Ta wtyczka umożliwia konfigurację punktów końcowych, jak pokazano poniżej.
Oto szczegóły każdej opcji -
"Format" - To jest format ładunku powiadomienia, który może być JSON lub XML.
"Protocol" - protokół używany do wysyłania powiadomień, HTTP, TCP lub UDP.
"Event" - Zdarzenia zadania, które wyzwalają powiadomienia: Zadanie rozpoczęte, Zadanie zakończone, Zadanie zakończone lub Wszystkie zdarzenia (opcja domyślna).
"URL"- adres URL, na który mają być wysyłane powiadomienia. Przybiera formę „http://host„dla protokołu HTTP oraz
"host:port"
dla protokołów TCP i UDP."Timeout" - Limit czasu w milisekundach na wysłanie żądania powiadomienia, domyślnie 30 sekund.
Jak wykazano we wcześniejszej sekcji, dostępnych jest wiele wtyczek raportowania, z których najprostszą są raporty dostępne dla testów jUnit.
W akcji Post-build dla dowolnego zadania można zdefiniować raporty do utworzenia. Po zakończeniu kompilacji opcja Wyniki testu będzie dostępna do dalszego przeglądania.
Jenkins ma wiele wtyczek do analizy kodu. Różne wtyczki można znaleźć pod adresemhttps://wiki.jenkins-ci.org/display/JENKINS/Static+Code+Analysis+Plugins
Ta wtyczka udostępnia narzędzia do wtyczek do statycznej analizy kodu. Jenkins może przeanalizować plik wyników z różnych narzędzi analizy kodu, takich jak CheckStyle, FindBugs, PMD itp. Dla każdego odpowiedniego narzędzia do analizy kodu należy zainstalować wtyczkę w Jenkins.
Dodatkowo dostępny jest dodatkowy plugin Static Analysis Collector, który łączy indywidualne wyniki tych wtyczek w jeden wykres trendu i widok.
Wtyczki mogą dostarczać informacji, takich jak
- Całkowita liczba ostrzeżeń w zadaniu
- Pokaz nowych i naprawionych ostrzeżeń kompilacji
- Raporty trendów pokazujące liczbę ostrzeżeń na kompilację
- Przegląd znalezionych ostrzeżeń według modułu, pakietu, kategorii lub typu
- Szczegółowe raporty znalezionych ostrzeżeń opcjonalnie filtrowane według wagi (lub nowe i naprawione)
Czasami potrzeba wielu maszyn do budowania, jeśli istnieją przypadki, w których są większe i cięższe projekty, które są budowane regularnie. A uruchomienie wszystkich tych kompilacji na komputerze centralnym może nie być najlepszą opcją. W takim scenariuszu można skonfigurować inne maszyny Jenkins jako maszyny podrzędne, aby odciążyć główny serwer Jenkins.
Czasami możesz potrzebować kilku różnych środowisk, aby przetestować swoje kompilacje. W tym przypadku użycie slave'a do reprezentowania każdego wymaganego środowiska jest prawie koniecznością.
Slave to komputer skonfigurowany do odciążania projektów kompilacji z serwera głównego, a po skonfigurowaniu ten podział zadań jest dość automatyczny. Dokładne zachowanie delegowania zależy od konfiguracji każdego projektu; niektóre projekty mogą zdecydować się na „trzymanie się” konkretnej maszyny do kompilacji, podczas gdy inne mogą zdecydować się na swobodne wędrowanie między niewolnikami.
Ponieważ każdy slave uruchamia osobny program zwany „agentem slave”, nie ma potrzeby instalowania pełnego Jenkinsa (pakietu lub skompilowanych plików binarnych) na slave. Istnieją różne sposoby uruchamiania agentów podrzędnych, ale ostatecznie agent podrzędny i serwer główny Jenkins muszą ustanowić dwukierunkowe łącze komunikacyjne (na przykład gniazdo TCP / IP), aby działać.
Aby skonfigurować slave / węzły w Jenkins, wykonaj kroki podane poniżej.
Step 1 - Przejdź do sekcji Manage Jenkins i przewiń w dół do sekcji Manage Nodes.
Step 2 - Kliknij New Node
Step 3 - Podaj nazwę węzła, wybierz opcję Głupi slave i kliknij OK.
Step 4- Wprowadź szczegóły węzła maszyny podrzędnej. W poniższym przykładzie rozważamy, że maszyna podrzędna jest maszyną z systemem Windows, dlatego jako metodę uruchamiania wybrano opcję „Pozwól Jenkinsowi kontrolować to urządzenie podrzędne systemu Windows jako usługę systemu Windows”. Musimy również dodać niezbędne szczegóły węzła podrzędnego, takie jak nazwa węzła i poświadczenia logowania do maszyny węzła. Kliknij przycisk Zapisz. Etykiety, dla których wprowadzono nazwę jako „New_Slave”, można użyć do skonfigurowania zadań w celu korzystania z tego urządzenia podrzędnego.
Po wykonaniu powyższych kroków nowy komputer węzłowy będzie początkowo w stanie offline, ale przejdzie w tryb online, jeśli wszystkie ustawienia na poprzednim ekranie zostały wprowadzone poprawnie. W razie potrzeby można w dowolnym momencie ustawić maszynę podrzędną w trybie offline.
Dostępnych jest wiele wtyczek, których można użyć do przesłania plików kompilacji po udanej kompilacji do odpowiedniej aplikacji / serwera internetowego. Na przykład jest to „Wdrażanie wtyczki do kontenera”. Aby z tego skorzystać, wykonaj czynności podane poniżej.
Step 1- Idź do Zarządzaj Jenkins → Zarządzaj wtyczkami. Przejdź do sekcji Dostępne i znajdź wtyczkę „Wdróż wtyczkę do kontenera” i zainstaluj wtyczkę. Uruchom ponownie serwer Jenkins.
Ta wtyczka pobiera plik wojny / ucha i wdraża go na działającym zdalnym serwerze aplikacji pod koniec kompilacji.
Tomcat 4.x / 5.x / 6.x / 7.x
JBoss 3.x / 4.x
Glassfish 2.x / 3.x
Step 2- Przejdź do projektu kompilacji i kliknij opcję Konfiguruj. Wybierz opcję „Rozmieść wojnę / ucho do kontenera”
Step 3- W sekcji Wdróż wojnę / ucho do kontenera wprowadź wymagane szczegóły serwera, na którym pliki mają zostać wdrożone, i kliknij przycisk Zapisz. Te kroki zapewnią teraz, że niezbędne pliki zostaną wdrożone w niezbędnym kontenerze po pomyślnej kompilacji.
Istnieją różne wtyczki, które są dostępne w Jenkins, aby prezentować metryki dla kompilacji, które są przeprowadzane przez pewien czas. Te dane są przydatne do zrozumienia twoich kompilacji i tego, jak często zawodzą / przechodzą w czasie. Jako przykład spójrzmy na „wtyczkę Build History Metrics”.
Ta wtyczka oblicza następujące wskaźniki dla wszystkich kompilacji po zainstalowaniu
- Średni czas do awarii (MTTF)
- Średni czas do wyzdrowienia (MTTR)
- Odchylenie standardowe czasów budowy
Step 1 - Przejdź do pulpitu Jenkins i kliknij Zarządzaj Jenkins
Step 2 - Przejdź do opcji Zarządzaj wtyczkami.
Step 3 - Przejdź do zakładki Dostępne i wyszukaj wtyczkę „Build History Metrics plugin” i wybierz opcję „Zainstaluj bez ponownego uruchamiania”.
Step 4- Pojawi się następujący ekran, aby potwierdzić pomyślną instalację wtyczki. Uruchom ponownie instancję Jenkins.
Po przejściu do strony Oferty pracy zobaczysz tabelę z obliczonymi danymi. Dane są wyświetlane z ostatnich 7 dni, ostatnich 30 dni i zawsze.
Aby zobaczyć ogólne trendy w Jenkins, dostępne są wtyczki do zbierania informacji z kompilacji i Jenkinsa i wyświetlania ich w formacie graficznym. Jednym z przykładów takiej wtyczki jest „wtyczka Hudson global-build-stats”. Przejdźmy więc przez kolejne kroki.
Step 1 - Przejdź do pulpitu Jenkins i kliknij Zarządzaj Jenkins
Step 2 - Przejdź do opcji Zarządzaj wtyczkami
Step 3 - Przejdź do zakładki Dostępne i wyszukaj wtyczkę „Hudson global-build-stats plugin” i wybierz opcję „zainstaluj bez ponownego uruchamiania”.
Step 4- Pojawi się następujący ekran, aby potwierdzić pomyślną instalację wtyczki. Uruchom ponownie instancję Jenkins.
Aby zobaczyć statystyki globalne, wykonaj kroki od 5 do 8.
Step 5- Przejdź do pulpitu Jenkins i kliknij Zarządzaj Jenkins. Na ekranie Zarządzaj Jenkinsem przewiń w dół, a teraz zobaczysz opcję o nazwie „Globalne statystyki budowania”. Kliknij ten link.
Step 6- Kliknij przycisk „Inicjalizuj statystyki”. To, co robi, to gromadzenie wszystkich istniejących rekordów dla kompilacji, które zostały już przeprowadzone, i na podstawie tych wyników można tworzyć wykresy.
Step 7- Po zainicjowaniu danych nadszedł czas na utworzenie nowego wykresu. Kliknij link „Utwórz nowy wykres”.
Step 8- Pojawi się wyskakujące okienko do wprowadzenia odpowiednich informacji dla szczegółów nowego wykresu. Wprowadź następujące obowiązkowe informacje
- Tytuł - wszelkie informacje o tytule, w tym przykładzie są podane jako „Demo”
- Szerokość wykresu - 800
- Wysokość wykresu - 600
- Skala czasu na wykresie - codziennie
- Długość wykresu - 30 dni
Reszta informacji może pozostać taka, jaka jest. Po wprowadzeniu informacji kliknij Utwórz nowy wykres.
Zobaczysz teraz wykres, który przedstawia trendy kompilacji w czasie.
Jeśli klikniesz dowolną sekcję na wykresie, zobaczysz szczegółowe informacje o zadaniu i ich kompilacjach.
Poniżej przedstawiono niektóre z podstawowych czynności, które wykonasz, a niektóre z nich to najlepsze praktyki dotyczące konserwacji serwera Jenkins
Opcje adresów URL
Następujące polecenia po dołączeniu do adresu URL instancji Jenkins wykonają odpowiednie akcje na instancji Jenkins.
http://localhost:8080/jenkins/exit - wyłączcie Jenkins
http://localhost:8080/jenkins/restart - zrestartuj Jenkins
http://localhost:8080/jenkins/reload - aby przeładować konfigurację
Kopia zapasowa Jenkins Home
Katalog macierzysty Jenkins to nic innego jak lokalizacja na dysku, w której Jenkins przechowuje wszystkie informacje dotyczące zadań, kompilacji itp. Lokalizację katalogu domowego można zobaczyć po kliknięciu Zarządzaj Jenkins → Konfiguruj system.
Skonfiguruj Jenkins na partycji, która ma najwięcej wolnego miejsca na dysku - ponieważ Jenkins pobierałby kod źródłowy dla różnych zdefiniowanych zadań i wykonywał ciągłe kompilacje, zawsze upewnij się, że Jenkins jest skonfigurowany na dysku, który ma wystarczającą ilość miejsca na dysku twardym. Jeśli na dysku twardym zabraknie miejsca, wszystkie kompilacje instancji Jenkins zaczną kończyć się niepowodzeniem.
Inną najlepszą praktyką jest pisanie zadań cron lub zadań konserwacyjnych, które mogą wykonywać operacje czyszczenia, aby uniknąć zapełnienia dysku, na którym jest skonfigurowany Jenkins.
Jenkins zapewnia dobre wsparcie w zakresie ciągłego wdrażania i dostarczania. Jeśli spojrzysz na przepływ rozwoju oprogramowania przez wdrożenie, będzie to pokazane poniżej.
Główną częścią Ciągłego wdrażania jest zapewnienie, że cały proces, który pokazano powyżej, jest zautomatyzowany. Jenkins osiąga to wszystko za pomocą różnych wtyczek, z których jedną jest „Wdrożenie do kontenera Plugin”, które było widoczne we wcześniejszych lekcjach.
Dostępne są wtyczki, które faktycznie mogą zapewnić graficzną reprezentację procesu ciągłego wdrażania. Ale najpierw stwórzmy inny projekt w Jenkins, abyśmy mogli najlepiej zobaczyć, jak to działa.
Stwórzmy prosty projekt, który emuluje etap QA i testuje aplikację Helloworld.
Step 1- Przejdź do pulpitu Jenkins i kliknij Nowy element. Wybierz „Projekt dowolny” i wprowadź nazwę projektu jako „QA”. Kliknij przycisk OK, aby utworzyć projekt.
Step 2 - W tym przykładzie zachowujemy prostotę i używamy tego projektu do wykonania programu testowego dla aplikacji Helloworld.
Więc nasz projekt QA jest teraz skonfigurowany. Możesz zrobić kompilację, aby sprawdzić, czy kompiluje się poprawnie.
Step 3 - Teraz przejdź do projektu Helloworld i kliknij opcję Konfiguruj
Step 4 - W konfiguracji projektu wybierz opcję „Dodaj akcję po kompilacji” i wybierz opcję „Kompiluj inne projekty”
Step 5- W sekcji „Projekt do zbudowania” wprowadź QA jako nazwę projektu do zbudowania. Możesz pozostawić domyślną opcję „Wyzwalaj tylko wtedy, gdy kompilacja jest stabilna”. Kliknij przycisk Zapisz.
Step 6- Zbuduj projekt Helloworld. Teraz, jeśli zobaczysz dane wyjściowe konsoli, zobaczysz również, że po pomyślnym zbudowaniu projektu Helloworld nastąpi również kompilacja projektu QA.
Step 7- Zainstalujmy teraz wtyczkę Delivery pipeline. Idź do Manage Jenkins → Manage Plugin's. Na dostępnej karcie wyszukaj „Wtyczka rurociągu dostawy”. Kliknij opcję Instaluj bez ponownego uruchamiania. Po zakończeniu uruchom ponownie instancję Jenkins.
Step 8 - Aby zobaczyć proces dostarczania w akcji, w panelu Jenkins Dashboard kliknij symbol + na karcie obok karty „Wszystkie”.
Step 9 - Wprowadź dowolną nazwę dla nazwy widoku i wybierz opcję „Widok rurociągu dostaw”.
Step 10- Na następnym ekranie możesz pozostawić domyślne opcje. Można zmienić następujące ustawienia -
- Upewnij się, że opcja „Pokaż wyniki analizy statycznej” jest zaznaczona.
- Upewnij się, że opcja „Pokaż całkowity czas kompilacji” jest zaznaczona.
- Dla początkowej pracy - wprowadź projekt Helloworld jako pierwsze zadanie, które powinno zostać zbudowane.
- Wpisz dowolną nazwę rurociągu
- Kliknij przycisk OK.
Zobaczysz teraz wspaniały widok całego potoku dostaw i będziesz mógł zobaczyć stan każdego projektu w całym potoku.
Inną słynną wtyczką jest build pipeline plugin. Spójrzmy na to.
Step 1- Idź do Manage Jenkins → Manage Plugin's. Na dostępnej karcie wyszukaj „Build Pipeline Plugin”. Kliknij opcję Instaluj bez ponownego uruchamiania. Po zakończeniu uruchom ponownie instancję Jenkins.
Step 2 - Aby zobaczyć potok kompilacji w akcji, w panelu Jenkins Dashboard kliknij symbol + na karcie obok karty „Wszystkie”.
Step 3 - Wprowadź dowolną nazwę dla nazwy widoku i wybierz opcję „Utwórz widok potoku”.
Step 4- Zaakceptuj ustawienia domyślne, tylko w zadaniu Selected Initial, upewnij się, że wprowadzono nazwę projektu Helloworld. Kliknij przycisk OK.
Zobaczysz teraz wspaniały widok całego potoku dostaw i będziesz mógł zobaczyć stan każdego projektu w całym potoku.
Aby uzyskać listę wszystkich wtyczek dostępnych w Jenkins, można odwiedzić link - https://wiki.jenkins-ci.org/display/JENKINS/Plugins
Widzieliśmy już wiele przypadków instalowania wtyczek, spójrzmy na kilka innych zadań konserwacyjnych w odniesieniu do wtyczek
Odinstalowywanie wtyczek
Aby odinstalować wtyczkę, przejdź do Zarządzaj Jenkins → Zarządzaj wtyczkami. Kliknij kartę Zainstalowane. Niektóre wtyczki będą miały opcję Odinstaluj. Możesz kliknąć te przyciski, aby odinstalować wtyczki. Upewnij się, aby ponownie uruchomić instancję Jenkins po odinstalowaniu.
Instalowanie innej wersji wtyczki
Czasami może być konieczne zainstalowanie starszej wersji wtyczki, w takim przypadku wtyczkę można pobrać z odpowiedniej strony wtyczki w witrynie Jenkins. Następnie możesz użyćUpload możliwość ręcznego przesłania wtyczki.
W Jenkins masz możliwość konfigurowania użytkowników i ich odpowiednich uprawnień w instancji Jenkins. Domyślnie nie chcesz, aby każdy mógł definiować zadania lub inne zadania administracyjne w Jenkins. Więc Jenkins ma możliwość posiadania odpowiedniej konfiguracji bezpieczeństwa.
Aby skonfigurować zabezpieczenia w Jenkins, wykonaj kroki podane poniżej.
Step 1 - Kliknij Zarządzaj Jenkins i wybierz opcję „Konfiguruj zabezpieczenia globalne”.
Step 2- Kliknij opcję Włącz zabezpieczenia. Jako przykład załóżmy, że chcemy, aby Jenkins utrzymywał własną bazę danych użytkowników, więc w dziedzinie bezpieczeństwa wybierz opcję „Własna baza danych użytkowników Jenkinsa”.
Domyślnie chcesz, aby centralny administrator definiował użytkowników w systemie, dlatego upewnij się, że opcja „Zezwalaj użytkownikom na rejestrację” nie jest zaznaczona. Resztę możesz zostawić tak, jak jest na razie i kliknij przycisk Zapisz.
Step 3- Zostaniesz poproszony o dodanie pierwszego użytkownika. Jako przykład, konfigurujemy administratorów systemu.
Step 4- Nadszedł czas, aby skonfigurować użytkowników w systemie. Teraz, kiedy przejdziesz do Zarządzaj Jenkins i przewiń w dół, zobaczysz opcję „Zarządzaj użytkownikami”. Kliknij tę opcję.
Step 5- Tak jak zdefiniowałeś swojego administratora, zacznij tworzyć innych użytkowników dla systemu. Na przykład po prostu tworzymy innego użytkownika o nazwie „user”.
Step 6- Teraz nadszedł czas, aby skonfigurować uprawnienia, w zasadzie kto ma do czego dostęp. Idź do Manage Jenkins → Configure Global Security.
Teraz w sekcji Autoryzacja kliknij „Zabezpieczenia oparte na macierzy”
Step 7- Jeśli nie widzisz użytkownika na liście grup użytkowników, wprowadź nazwę użytkownika i dodaj ją do listy. Następnie nadaj użytkownikowi odpowiednie uprawnienia.
Po zdefiniowaniu odpowiednich uprawnień kliknij przycisk Zapisz.
Twoje zabezpieczenia Jenkins są teraz skonfigurowane.
Note - W celu uwierzytelnienia Windows AD należy dodać wtyczkę Active Directory do Jenkinsa.
Jenkins ma wtyczkę do tworzenia kopii zapasowych, której można używać do tworzenia kopii zapasowych krytycznych ustawień konfiguracyjnych związanych z Jenkins. Wykonaj czynności podane poniżej, aby mieć kopię zapasową.
Step 1 - Kliknij Zarządzaj Jenkinsem i wybierz opcję „Zarządzaj wtyczkami”.
Step 2- W dostępnej zakładce wyszukaj „Backup Plugin”. Kliknij opcję Instaluj bez ponownego uruchamiania. Po zakończeniu uruchom ponownie instancję Jenkins
Step 3- Teraz, kiedy przejdziesz do Zarządzaj Jenkins i przewiń w dół, zobaczysz opcję „Menedżer kopii zapasowych”. Kliknij tę opcję.
Step 4 - Kliknij Setup.
Step 5- Tutaj głównym polem do zdefiniowania jest katalog kopii zapasowej. Upewnij się, że znajduje się na innym dysku, który różni się od dysku, na którym jest skonfigurowana instancja Jenkins. Kliknij przycisk Zapisz.
Step 6 - Kliknij „Backup Hudson configuration” na ekranie Backup manager, aby rozpocząć tworzenie kopii zapasowej.
Następny ekran pokaże stan kopii zapasowej
Aby odzyskać dane z kopii zapasowej, przejdź do ekranu Backup Manager, kliknij Przywróć konfigurację Hudson.
Zostanie wyświetlona lista kopii zapasowych, kliknij odpowiednią, aby kliknąć Uruchom przywracanie, aby rozpocząć przywracanie kopii zapasowej.
Testy internetowe, takie jak testy selenu, można uruchamiać na zdalnych maszynach podrzędnych za pośrednictwem instalacji wtyczki master slave i pakietu selenium. Poniższe kroki pokazują, jak przeprowadzać testy zdalne przy użyciu tej konfiguracji.
Step 1- Upewnij się, że konfiguracja master slave jest na miejscu. Przejdź do swojego głównego serwera Jenkins. Idź do Manage Jenkins → Manage Nodes.
Na naszej liście węzłów etykieta DXBMEM30 to maszyna podrzędna. W tym przykładzie zarówno komputer główny, jak i podrzędny są komputerami z systemem Windows.
Step 2 - Kliknij Konfiguruj dla maszyny podrzędnej DXBMEM30.
Step 3 - Upewnij się, że metoda uruchamiania jest ustawiona jako „Uruchom agentów podrzędnych przez Java Web Start”
Step 4- Teraz przejdź do swojej maszyny slave i stamtąd otwórz instancję przeglądarki do instancji głównej Jenkins. Następnie przejdź do Zarządzaj Jenkins → Zarządzaj węzłami. Przejdź do DXBMEM30 i kliknij
Step 5 - Kliknij instancję DXBMEM30.
Step 6 - Przewiń w dół, a zobaczysz opcję Uruchom, która jest opcją uruchomienia „Java Web Start”
Step 7- Otrzymasz ostrzeżenie dotyczące bezpieczeństwa. Kliknij pole wyboru Akceptacja i kliknij Uruchom.
Zobaczysz teraz otwarte okno Jenkins Slave i teraz połączone.
Step 8- Konfiguracja testów do uruchomienia na slave. Tutaj musisz upewnić się, że tworzone miejsce pracy jest przeznaczone specjalnie do przeprowadzania tylko testów selenu.
W konfiguracji zadania upewnij się, że opcja „Ogranicz miejsce, w którym można uruchomić ten projekt” jest zaznaczona, a w wyrażeniu Etykieta wpisz nazwę węzła podrzędnego.
Step 9- Upewnij się, że część pracy dotycząca selenu została skonfigurowana. Musisz upewnić się, że plik Sample.html i plik selenium-server.jar są również obecne na komputerze slave.
Po wykonaniu wszystkich powyższych kroków i kliknięciu Build, ten projekt uruchomi test Selenium na komputerze podrzędnym zgodnie z oczekiwaniami.