Jak testować Jenkinsfile lokalnie

Jak testować Jenkinsfile lokalnie

Kiedy zaczniesz tworzyć rurociągi Jenkin za pomocą deklaratywnego JenkinsFile, popełnianie błędów w definicji składni.

Dlatego dobrą praktyką jest sprawdzanie i weryfikowanie plików Jenkins przed zaangażowaniem ich w repozytoria. Zapewnia to, że nie masz wielu nieudanych kompilacji na serwerze Jenkins.

Ten samouczek pokaże różne metody i techniki, których możesz użyć do kłaczania i weryfikacji JenkinsFile przed uruchomieniem ich na serwerze.

Jenkinsfile

Jenkinsfile to potężne narzędzie, które pozwala określić instrukcje dla twoich kompilacji w prostej i łatwej do zrozumienia składni. Istnieją dwie główne metody tworzenia Jenkinsfile:

    1. Za pomocą deklaratywnej składni
    2. Za pomocą skryptów Groovy

Ten samouczek skupi się na artykule napisanym w składni deklaratywnej, ponieważ jest o wiele łatwiejsza do zrozumienia i użycia.

Poniżej pokazuje składnię prostego deklaratywnego Jenkinsfile.

def msg = "To jest tekst niestandardowy"
rurociąg
agent dowolny
Etapy
scena („hello”)
kroki
skrypt
msg = "Teraz ciąg jest inny!!"

echo "$ msg"




Nie przejdziemy przez strukturę pliku ani tego, co reprezentuje każdy blok w powyższym pliku. Zamiast tego możesz sprawdzić nasz samouczek Jenkins, aby zbadać różne podstawy Jenkinsa, takie jak Deklaracja zmienna, sceny Jenkins, etapy Jenkins i wiele innych.

Co jest kłaczające i dlaczego jest to ważne?

Kierowanie odnosi się do procesu sprawdzania kodu źródłowego pod kątem potencjalnych problemów lub błędów. W większości przypadków zwykle wykonywamy kod za pośrednictwem dedykowanego narzędzia o nazwie Linter.

Liner kodu przyjmie kod źródłowy wejściowej, przeanalizuje go i zapewni, że w pliku nie ma potencjalnych błędów. Weryczy również kwestie składni i formatowania zdefiniowanych w danym języku.

Niektóre typowe problemy, które Linters może wykryć, obejmują błędy składniowe, problemy z formatowaniem i potencjalne problemy logiczne.

Tutaj leży problem, jeśli chodzi o Jenkinsfiles. Po edycji JenkinsFile musisz popełnić zmiany i popchnąć zmiany do repozytorium.

Jednak Jenkins jest skonfigurowany do wykonywania kompilacji za każdym razem, gdy wykrywana jest zmiana w Jenkinsfile. Stąd, jeśli popełnisz jakikolwiek błąd w pliku i popełnisz bez testowania, Jenkins spróbuje zbudować projekt i zawieść z powodu błędów w pliku rurociągu.

Często napotykasz takie błędy, co prowadzi do powolnych jednoczesnych kompilacji, a nawet mnóstwa zobowiązań GIT za naprawę błędów składniowych.

Aby zapobiec takich błędów, dobrze jest użyć linera, aby sprawdzić, czy wszystko działa przed zaangażowaniem.

Jak kłaczyć Jenkinsfile

Porozmawiajmy teraz, w jaki sposób możemy kłaczyć Jenkinfile lokalnie przed popełnieniem.

Metoda 1 - Korzystanie z deklaratywnego Lintera Jenkinsa

Pierwszą metodą, której możemy użyć do nadpokomu JenkinsFile przed popełnieniem, jest użycie wiersza poleceń.

Zaloguj się do pulpitu pulpitu Jenkins - Zarządzaj Jenkins - Jenkins Cli i Donwload the Jenkins Cli Utility.

Znajdziesz link do pobrania Jenkins CLI i jak uruchomić polecenie w pierwszej sekcji.


Po pobraniu przejdź do lokalizacji Jenkins-Cli.plik jar i uruchom powyższe polecenie.

Polecenie powinno wymienić możliwe polecenia, które możesz wykonać na serwerze, jak pokazano:

Konfigurowanie przykładowego Jenkinsfile

Kolejnym krokiem jest skonfigurowanie przykładowego Jenkinsfile, którego potrzebujemy, aby nadać i przetestować pod kątem ważności. Do celów demonstracyjnych użyjemy prostego skryptu Hello World, jak podano poniżej:

def msg = "To jest tekst niestandardowy"
rurociąg
agent dowolny
Etapy
scena („hello”)
kroki
skrypt
msg = "Teraz ciąg jest inny!!"

echo $ msg




Możesz zapisać JenkinsFile w dowolnym miejscu w systemie plików.

Kłaczając Jenkinsfile z wiersza poleceń

Aby kłaczyć Jenkinsfile z wiersza poleceń, możemy użyć polecenia:

$ java -jar jenkins -cli.jar -s Jenkins_Url -WebSocket Deklaratywne -lininter < Jenkinsfile


gdzie Jenkins_Url jest adresem do kontrolera Jenkinsa.

Jeśli Twój serwer Jenkins potrzebuje uwierzytelnienia, użyj opcji -Auth, a następnie nazwy użytkownika i hasła jako nazwa użytkownika: hasło.

Przykładowa składnia pokazano poniżej:

$ java -jar jenkins -cli.JAR -s Jenkins_Url -Auth Nazwa użytkownika: hasło -WebSocket Deklaratywne -liner < Jenkinsfile


Pokazajmy wyjście Lintera, gdy mijamy powyższe Jenkinsfile.

$ java -jar jenkins -cli.jar -s http: // localhost: 9001/-Auth root: hasło -WebSocket -Deklaratywne -Linter < .\Jenkinsfile


Po uruchomieniu powyższego polecenia Linter przeanalizuje Jenkinsfile i wyprowadzi wszelkie potencjalne problemy. Ponieważ nasz plik ma błędy, Linter powie nam, dlaczego i potencjalne poprawki, jak pokazano poniżej.


W takim przypadku Linter mówi nam, że musimy dołączyć nazwę zmiennej w bloku echa ze znakami cytatowymi.

Możemy iść dalej i naprawić nasz plik.

def msg = "To jest tekst niestandardowy"
rurociąg
agent dowolny
Etapy
scena („hello”)
kroki
skrypt
msg = "Teraz ciąg jest inny!!"

echo "$ msg"




Po naprawie możemy ponownie uruchomić nasze polecenie Linter:

$ java -jar jenkins -cli.jar -s http: // localhost: 9001/-Auth root: hasło -WebSocket -Deklaratywne -Linter < .\Jenkinsfile


Ponieważ nie mamy żadnych błędów w naszym Jenkinsfile, polecenie zwróci wiadomość jak pokazano:

Jenkinsfile z powodzeniem zatwierdził.


I pomyślnie przetestowaliśmy i zweryfikowaliśmy, aby nasz Jenkinsfile jest gotowy do zatwierdzenia.

Metoda 2 - Dodanie Jenkinsfile Linter do swojego edytora

Drugą wspólną metodą testowania i weryfikacji Jenkinsfile jest dodanie wtyczki Jenkins Linter do edytora.

Jenkins zapewnia Linter dla:

    1. Edytor Eclipse
    2. Kod VisualStudio
    3. Neovim
    4. Atom
    5. Sublime Text Editor

W tej sekcji pokaże, jak używać Jenkinsfile Linter w kodzie Visual Studio.

W kodzie Visual Studio naciśnij Ctrl + Shift + K, aby otworzyć menu rozszerzeń. Wyszukaj „Jenkins Pipeline Linter”.

Wybierz rozszerzenie „Jenkins Pipeline Linter Connector” i kliknij Instaluj.


Po zainstalowaniu otwórz JenkinsFile w kodzie Visual Studio i naciśnij Ctrl + Shift + P, aby otworzyć paletę poleceń.

Wprowadź polecenie „Własność JenkinsFile” i naciśnij ENTER, aby wykonać, aby wykonać.

To skłoniłby Cię do adresu URL Jenkins Linter.

https: /// rurociąg-Model-Converter/Validate

Wprowadź link powyżej, jak pokazano w poniższym przykładzie:

http: // localhost: 8080/model rurociągu-konwerter/sprawdź


Jeśli Twój serwer wymaga uwierzytelnienia, otwórz ustawienia kodu Visual Studio i wyszukaj „Jenkins”.

Ustaw nazwę użytkownika i hasło Jenkins.


Po uruchomieniu polecenia „Walidacja Jenkinsfile” rozszerzenie przeanalizuje Twój Jenkinsfile i pokaże potencjalne problemy.

Wniosek

Nauczyłeś się, jak używać Jenkins Cli Linter do testowania i weryfikacji Jenkinsfile na swoim komputerze. Nauczyłeś się również, jak dodać Jenkins Linter do kodu Visual Studio, aby przetestować Jenkinsfile od edytora.