Samouczek Jenkins Pipeline: Jak utworzyć plik Jenkins (przykład)

Co to jest rurociąg Jenkinsa?

Rurociąg Jenkinsa jest kombinacją wtyczek, która obsługuje integrację i implementację ciągłych potoków dostarczania. Posiada rozszerzalny serwer automatyzacji do tworzenia prostych i złożonych potoków dostarczania jako kodu za pośrednictwem potoku DSL. Potok to grupa zdarzeń powiązanych ze sobą w sekwencji.

Co to są rurociągi ciągłego dostarczania? Jak to działa?

W potoku Jenkinsa każde zadanie lub zdarzenie jest w jakiś sposób zależne od co najmniej jednego lub większej liczby zdarzeń.

Praca rurociągów ciągłego dostarczania Jenkins
Praca rurociągów ciągłego dostarczania Jenkins

Powyższe zdjęcie przedstawia rurociąg ciągłych dostaw w Jenkins. Zawiera grupę stanów zwanych kompilacją, wdrażaniem, testowaniem i wydaniem. Wydarzenia te są ze sobą powiązane. Każdy stan ma swoje zdarzenia, które działają w sekwencji zwanej potokiem ciągłego dostarczania.

Ciągły potok dostaw to zautomatyzowane wyrażenie do wyświetlania procesu uzyskiwania oprogramowania do kontroli wersji. W ten sposób każda zmiana wprowadzona w oprogramowaniu przechodzi przez szereg złożonych procesów w drodze do wydania. Obejmuje również opracowywanie oprogramowania w sposób niezawodny i powtarzalny oraz postęp tworzonego oprogramowania przez wiele etapów testowanie i rozmieszczenie.

Co to jest plik Jenkins?

Potoki Jenkinsa można zdefiniować za pomocą pliku tekstowego o nazwie Plik Jenkinsa. Możesz zaimplementować potok jako kod przy użyciu JenkinsFile i można to zdefiniować przy użyciu języka specyficznego dla domeny (DSL). Dzięki JenkinsFile możesz napisać kroki potrzebne do uruchomienia potoku Jenkins.

Korzyści z używania Plik Jenkins to:

  • Możesz automatycznie tworzyć potoki dla wszystkich gałęzi i wykonywać żądania ściągnięcia za pomocą tylko jednego Plik Jenkinsa.
  • Możesz sprawdzić swój kod Jenkins w potoku
  • Możesz przeprowadzić audyt swojego potoku Jenkins
  • Jest to pojedyncze źródło Twojego potoku i może być modyfikowane przez wielu użytkowników.

JenkinsFile można zdefiniować za pomocą interfejsu internetowego lub pliku Jenkins.

Deklaratywna i skryptowa składnia potoku:

Istnieją dwa typy składni potoku Jenkinsa używane do definiowania pliku JenkinsFile.

  1. Deklaracyjny
  2. Skryptowane

Deklaracyjny:

Deklaratywna składnia potoku umożliwia łatwe tworzenie potoków. Zawiera predefiniowaną hierarchię do tworzenia potoków Jenkins. Daje możliwość kontrolowania wszystkich aspektów wykonania potoku w prosty i bezpośredni sposób.

Skrypt:

Skryptowany potok Jenkins działa na głównym Jenkins za pomocą lekkiego executora. Używa bardzo niewielu zasobów do tłumaczenia potoku na polecenia atomowe. Zarówno składnia deklaratywna, jak i skryptowa różnią się od siebie i są całkowicie inaczej zdefiniowane.

Dlaczego warto korzystać z rurociągu Jenkina?

Jenkins jest otwarty Serwer ciągłej integracji który ma możliwość wsparcia automatyzacji procesów wytwarzania oprogramowania. Za pomocą przypadków użycia możesz utworzyć wiele zadań automatyzacji i uruchomić je jako potok Jenkins.

Oto powody, dla których powinieneś używać potoku Jenkins:

  • Potok Jenkinsa jest zaimplementowany jako kod, który pozwala wielu użytkownikom edytować i wykonywać proces potoku.
  • Rurociągi są wytrzymałe. Jeśli więc Twój serwer ulegnie nieprzewidzianemu ponownemu uruchomieniu, potok zostanie automatycznie wznowiony.
  • Możesz wstrzymać proces potoku i poczekać na jego wznowienie, aż użytkownik wprowadzi dane wejściowe.
  • Jenkins Pipelines wspiera duże projekty. Można uruchamiać wiele zadań, a nawet używać potoków w pętli.

Rurociąg Jenkinsa Concepts

Semestr Opis
Rurociąg Potok to zestaw instrukcji podanych w formie kodu do ciągłego dostarczania i składa się z instrukcji potrzebnych do całego procesu kompilacji. Dzięki potokowi możesz kompilować, testować i dostarczać aplikację.
Node Maszyna, na której działa Jenkins, nazywa się węzłem. Blok węzła jest używany głównie w składni potoku skryptowego.
STAGE Blok etapu zawiera serię kroków w potoku. Oznacza to, że procesy kompilacji, testowania i wdrażania łączą się w jednym etapie. Ogólnie rzecz biorąc, blok etapu służy do wizualizacji procesu rurociągu Jenkins.
Ewolucja krok po kroku Krok to nic innego jak pojedyncze zadanie, które wykonuje określony proces w określonym czasie. Potok składa się z szeregu kroków.

Zainstaluj wtyczkę Build Pipeline w Jenkins

Z zbudować potok wtyczki, możesz utworzyć widok potokowy zadań przychodzących i wychodzących oraz tworzyć wyzwalacze wymagające ręcznej interwencji.

Oto jak możesz zainstalować zbudować potok wtyczka w twoim Jenkinsie:

Krok 1) Ustawienia wtyczki znajdziesz pod,

Zarządzaj Jenkinsem > Zarządzaj wtyczkami.

Zainstaluj wtyczkę Build Pipeline w Jenkins

Jeśli masz już zainstalowaną wtyczkę, zostanie ona wyświetlona w zakładce „Zainstalowane”.

Zainstaluj wtyczkę Build Pipeline w Jenkins

Krok 2) Jeżeli nie posiadałeś wcześniej zainstalowanej wtyczki,

pojawia się pod Dostępny patka.

Po pomyślnym zainstalowaniu zbudować potok wtyczki w Jenkinsie, wykonaj następujące kroki, aby utworzyć potok Jenkinsa:

Jak utworzyć potok Jenkinsa

Po zalogowaniu się do panelu Jenkins:

Krok 1) Kliknij na "+" po lewej stronie panelu Jenkins, aby utworzyć potok.

Utwórz potok Jenkins

Krok 2)

  1. Zostaniesz poproszony o nadanie nazwy widokowi potoku. Nazwiemy to „Rurociąg Guru99” przez czas trwania tej wersji demonstracyjnej.
  2. Wybierz Utwórz widok potoku dla Opcje
  3. Kliknij ok

Utwórz potok Jenkins

Krok 3) Na następnej stronie zostaniesz poproszony o podanie dodatkowych szczegółów, aby skonfigurować swój potok Jenkins. Po prostu zaakceptuj ustawienia domyślne i upewnij się, że wybrałeś pierwsze zadanie w ustawieniach.

Kliknij na Aplikuj , a następnie OK.

Utwórz potok Jenkins

Spowoduje to wyświetlenie przykładowego widoku potoku Twojego przedmiotu, jak podano poniżej:

Utwórz potok Jenkins

Uruchamianie kompilacji Pipeline

Krok 1) Aby uruchomić kompilację potoku, musisz najpierw połączyć swoje zadania w łańcuch. W tym celu przejdź do pierwszego zadania i kliknij opcję Konfiguruj.

Uruchamianie kompilacji Pipeline

Krok 2) Teraz pod Twórz wyzwalacze, Sprawdź Buduj po zbudowaniu innych projektów opcja.

Uruchamianie kompilacji Pipeline

W ten sposób powstał łańcuch dla wszystkich Twoich ofert pracy.

Krok 3) Zainstaluj Zbuduj widok potoku wtyczki, jeśli jeszcze jej nie zainstalowałeś.

Krok 4) Przejdź do panelu Jenkins i utwórz widok, klikając „+" przycisk. Wybierz Zbuduj widok rurociągu opcję i kliknij OK.

Uruchamianie kompilacji Pipeline

Krok 5) Pod Konfiguracja widoku potoku, Znajdź Przepływ rurociągu.

Pod Przepływ rurociągu, wybierz początkowe zadanie do uruchomienia. Teraz wybierz zadanie, które ma powiązania z innymi zadaniami, jak pokazano na rysunku Krok 1 i Krok 2.

Uruchamianie kompilacji Pipeline

Tutaj wybraliśmy Projekt Guru99 1 jako praca początkowa, powiązana z innymi stanowiskami. Zatem zadania będą uruchamiane jedno po drugim.

Kiedy potok Jenkins jest uruchomiony, możesz sprawdzić jego status za pomocą czerwonych i zielonych symboli stanu. Kolor czerwony oznacza awarię rurociągu, kolor zielony oznacza powodzenie.

W tym przykładzie potoku Jenkinsa widzimy, że przycisk jest zielony. Zatem rurociąg się powiódł.

Uruchamianie kompilacji Pipeline

Uruchamianie rurociągu Jenkins

Kliknij na Uruchom do obsługi rurociągu Jenkins. Będzie to wyglądać mniej więcej tak:

Uruchamianie rurociągu Jenkins

W powyższym przykładzie skryptu potoku Jenkinsa demonstrujemy prosty program „helloworld.java”. Jednak w projektach w czasie rzeczywistym będziesz odpowiedzialny za tworzenie i budowanie złożonych potoków w Jenkins. Poniżej znajduje się przykładowy widok potoku.

Uruchamianie rurociągu Jenkins

Najlepsze praktyki dotyczące korzystania z Jenkins Pipeline:

  • Skorzystaj z oryginalnego rurociągu Jenkins
  • Rozwijaj swój potok jako kod
  • Wszelkie prace niezwiązane z konfiguracją w potoku powinny odbywać się w bloku etapu.
  • Wszelkie prace materiałowe w rurociągu muszą być wykonywane w obrębie bloku węzłów.
  • Nie używaj danych wejściowych w bloku węzła.
  • Nigdy nie ustawiaj zmiennych środowiskowych za pomocą zmiennej globalnej env
  • Zawiń swoje dane wejściowe w limit czasu