Wspólna biblioteka Jenkinsa: Bliższe spojrzenie [2022]

Opublikowany: 2021-01-02

Żyjemy w epoce mikrousług, w których współczesne aplikacje są rozkładane na komponenty, które można wdrażać indywidualnie . Możemy argumentować, że Jenkins znalazł się wśród wiodących oryginalnych narzędzi CI / CD do wdrażania mikroserwisów. W porównaniu z aplikacjami monolitycznymi istnieje wiele potoków do wdrażania poszczególnych mikrousług.

Możesz użyć węża jako kodu do zakodowania całego procesu CI/CD. Potraktuj to jak przy tworzeniu aplikacji. Możesz opublikować kod potoku i uruchomić wszystkie poziomy testów przed użyciem go do wdrożenia aplikacji.

Spis treści

Czym jest udostępniona biblioteka Jenkinsa?

Kiedy mówimy CI / CD jako symbol, potrzebujemy modułowości i ponownego użycia. Musisz przestrzegać zasady DRY. Tutaj przydaje się wspólna Biblioteka Jenkinsa .

Biblioteka współdzielona Jenkinsa polega na dołączeniu standardowego kodu potoku dla systemów kontroli wersji i może być używana w dowolnej liczbie potoków, po prostu się do niego odwołując. Wiele zespołów może używać tego samego katalogu dla swojego potoku.

Możesz to porównać z popularnymi katalogami programistycznymi. Programowanie tworzy osobny przewodnik, z którego każdy może skorzystać podczas importowania kodu.

Na przykład, jeśli masz dziesięć potoków dla mikrousług z Javy, stara procedura tworzenia jest powtarzana dla wszystkich dziesięciu potoków. Poza tym kod potoku jest kopiowany i wklejany wraz z dodawaniem nowych usług. Jeśli chcesz zmienić niektóre parametry w starej fazie budowy, musisz dostosować je ręcznie we wszystkich rurach.

W tym samym scenariuszu utworzysz bibliotekę współdzieloną dla starszych budynków. W przypadku wszystkich potoków wszystko, co musisz zrobić, to odwołać się do starej biblioteki kodu budowlanego. Jeśli w przyszłości pojawią się jakieś stare zmiany, wystarczy zaktualizować ikonę biblioteki udostępnionej.

Przeczytaj: Ciekawe pomysły i tematy projektów Jenkins

Zacznij korzystać z bibliotek współdzielonych

Katalog współdzielony to zbiór fajnych plików (DSL + Groovy). Wszystkie fajne pliki muszą znajdować się w repozytorium git. Ten przykład używa Github jako repozytorium git. https://github.com/devopscube/jenkins-shared-library. Możesz zduplikować to repozytorium, aby uzyskać infrastrukturę biblioteki współdzielonej.

Baza danych bibliotek współdzielonych zawiera następujące struktury woluminów:

Wspólna Biblioteka Jenkinsa

| ____ vars

| ____ src

| ____ Surowce

Vars

Zawiera cały kod WCL, który można wywołać z potoku. Zawiera wszystkie pliki katalogów z rozszerzeniem .groovy. Pliki .txt są również obsługiwane do dokumentowania udostępnianego kodu biblioteki. Na przykład, jeśli masz plik o nazwie maven-build. Groovy, otrzymasz plik pomocy o nazwie maven-groovy.txt. Możesz napisać dokumentację pomocy, aby oznaczyć właściwości katalogu współdzielonego w tym pliku. Pliki pomocy można przeglądać na stronie <your-jenkins-url> / Pipeline Syntax / Global.

Src

Jest to standardowy katalog źródłowy Java. Gdy cały tekst zostanie skompilowany, zostanie dodany do ścieżki klasy. Tutaj możesz dodać niesamowicie fajny kod, aby rozszerzyć kod biblioteki współdzielonej. Możesz również użyć manifestu importu, aby zaimportować istniejące kategorie i rozszerzenia Jenkins.

Istnieją scenariusze, w których fajny sprzęt DSL nie jest wystarczająco elastyczny, aby wykonywać określone funkcje. W takim przypadku możesz napisać własne funkcje groove w src i odczytać je w kodzie biblioteki współdzielonej.

Zasoby

W tym folderze możesz zarządzać wszystkimi niepotrzebnymi plikami potrzebnymi do węża. Na przykład możesz potrzebować ogólnego szablonu JSON do wykonywania wywołań API podczas konstruowania. Możesz zapisać ten szablon JSON w folderze zasobów i wywołać go w bibliotece udostępnionej za pomocą funkcji LibraryResource.

Trzeba przeczytać: Wynagrodzenie Jenkinsa w Indiach

Udostępniona biblioteka globalna

Istnieje kilka miejsc, w których możesz skonfigurować katalog współdzielony, w zależności od przypadku użycia. Jenkins Management » Konfiguracja systemu » Globalna biblioteka rur. Możesz skonfigurować dowolną liczbę katalogów według potrzeb.

Biblioteki te są powszechnie dostępne, dzięki czemu każdy potok w systemie może korzystać z funkcji zaimplementowanych w tych bibliotekach.

Te biblioteki są uważane za „niezawodne”. Możesz wykonać dowolną metodę w Javie, Groovy, wewnętrznym API Jenkinsa, rozszerzeniu Jenkins lub katalogu innej firmy. Pozwala precyzyjnie identyfikować biblioteki, które składają niezabezpieczone interfejsy API w koperty wysokiego poziomu, których można bezpiecznie używać z dowolnego potoku.

Należy pamiętać, że każdy, kto może zapłacić prowizję do tej bazy danych SCM, ma nieograniczony dostęp do Jenkins. Aby utworzyć te katalogi, potrzebujesz uprawnienia Total / RunScripts (to uprawnienie jest zwykle przyznawane administratorom Jenkins).

Zapisz się na kursy inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Biblioteka współdzielona na poziomie folderu

Wszystkie utworzone foldery można połączyć z katalogami udostępnionymi. Ten mechanizm umożliwia ustawienie określonego zakresu katalogów dla wszystkich potoków w woluminie lub podfolderze.

Katalogi oparte na folderach nie są uważane za „zaufane”. Działa w piaskownicy rowkowej, podobnie jak zwykła rura.

Automatyczna biblioteka współdzielona

Inne wtyczki mogą dodawać sposób na identyfikację biblioteki w podróży. Na przykład „Folder organizacji GitHub” to wtyczka źródłowa dostarczona w źródle oddziału GitHub. Zapewnia komponent, który pozwala skryptom na używanie niezaufanych bibliotek, takich jak github.com/orgname/reponame, bez jakiejkolwiek dodanej konfiguracji. W takim przypadku określone repozytorium GitHub zostanie załadowane z głównej gałęzi przy użyciu ustawień anonimowych.

Aby sprawdzić zmiany w bibliotece

Jeśli zauważysz błąd w kompilacji z niezaufanym katalogiem, kliknij łącze odtwarzania i edytuj jeden lub więcej plików źródłowych, aby sprawdzić, czy wynikowa wersja działa zgodnie z oczekiwaniami. Gdy jesteś zadowolony z wyników, kliknij łącze porównania na stronie Stan wydania i zastosuj różnicę do swojej biblioteki i puli zatwierdzeń.

(Nawet jeśli żądana wersja biblioteki jest rozgałęzieniem, a nie wersją statyczną, taką jak zakładka, reaktywowana wersja użyje tej samej wersji, co wersja oryginalna. Nie można wycofać zasobów biblioteki.)

Obecnie nie zapewnia zaufanych bibliotek Replay. Zmiana plików zasobów podczas powtórki nie jest obecnie obsługiwana.

Przeczytaj także: Pytania i odpowiedzi na wywiad z Jenkinsem

Wniosek

Oto kilka ważnych rzeczy do zapamiętania:

  • Będziesz musiał użyć Groovy do pisania kroków lub funkcji niestandardowych.
  • Istnieje potrzeba pisania kroków potoku, które można wywoływać z potoków.
  • Musisz utworzyć plik w katalogu vars repozytorium, który będzie zawierał nazwę Twojego niestandardowego kroku.
  • Metoda wywołania def powinna być zaimplementowana przez parametry twojego kroku.
  • Jeśli istnieje potrzeba napisania wspólnego kodu Groovy, możesz dodać go do src.
  • Możesz także zintegrować współdzieloną bibliotekę z Jenkins za pomocą ekranu konfiguracji systemu.

Jeśli chcesz dowiedzieć się więcej o tworzeniu pełnego stosu, zapoznaj się z programem Executive PG UpGrad i IIIT-B w zakresie tworzenia pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadań , status absolwentów IIIT-B, praktyczne, praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Kurs rozwoju oprogramowania | Opanuj Javę, C, Python i nie tylko‎

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania