Jenkinsfile odnosi się do pliku tekstowego ASCII, który zawiera definicje rurociągu Jenkins. Jenkinsfile używa składni deklaratywnej lub groovy script format. Jenkinsfile zawiera serię etapów i kroków tworzących rurociąg Jenkins.
Każdy krok w rurociągu jest wykonywany w określonej kolejności, a kolejne kroki mogą wykorzystywać wyniki jednego kroku. Używamy głównie kroków zdefiniowanych w rurociągu Jenkins do wykonywania automatycznych zadań, takich jak budowanie aplikacji, testowanie i wdrażanie.
Domyślnie Jenkinsfile jest zawarty w katalogu głównym projektu. Możesz jednak przechowywać go w unikalnej bibliotece Jenkinsfile w Jenkins. To pozwala Jenkins śledzić plik Jenkins i monitorować wszelkie modyfikacje dokonane w rurociągu. W przypadku zmian w JenkinsFile lub kodzie źródłowym w repozytorium, Jenkins automatycznie wykrywa zmiany, zbuduj projekt i uruchamia wszelkie testy zdefiniowane w Jenkinsfile.
Ten samouczek obejmuje podstawy tworzenia i pisania podstawowego Jenkinsfile za pomocą deklaratywnej składni.
Anatomia podstawowego plik jenkins
Poniższy przykład pokazuje podstawowy Jenkinsfile. Używamy tego, aby pokazać, jak konfigurowany jest JenkinsFile i jak go używać:
rurociąg
agent dowolny
Etapy
scena („hello”)
kroki
Echo „Hello World”
Jenkinsfile składa się z dostarczonych elementów składowych. Rozbijmy to, co pociąga za sobą każdy blok.
- Rurociąg - blok rurociągu mówi Jenkinsowi, że każde polecenie zdefiniowane w tym bloku jest traktowane jako część konfiguracji rurociągu i kroków. To jest blok najwyższego poziomu w Jenkinsfile. Możesz zdefiniować inne elementy powyżej bloku rurociągu, takie jak zmienne.
- Agent - agent to węzeł agenta Jenkins, który służy do wykonywania kroków w rurociągu Jenkins. Agent może być maszyną fizyczną, maszyną wirtualną lub pojemnikiem.
- Etap - blok sceny odnosi się do grupy kroków w rurociągu Jenkins. Etapy służą do grupowania powiązanych kroków i kontrolowania kolejności, w jakiej są wykonywane.
- Krok - Następna część to blok krokowy. Służy do zdefiniowania jednego zadania w rurociągu Jenkins. Każdy krok w Jenkinsfile jest wykonywany w kolejności, w jakiej są zdefiniowane.
W poprzednim przykładzie rurociągu definiujemy pojedynczy etap o nazwie Hello. Definiujemy prosty krok na scenie, który drukuje ciąg „Hello World” do konsoli.
Prowadzenie Jenkinsfile
Aby uruchomić Jenkinsfile, wykonaj kroki, które pokazano następująco:
- Zainstaluj Jenkins na swoim komputerze lub uzyskaj instancję Jenkins od dostawcy chmury. Możesz sprawdzić nasz samouczek, jak zainstalować Jenkins w systemie Windows lub Linux, aby dowiedzieć się więcej.
- Utwórz nowy projekt rurociągu Jenkins, klikając link „Nowy element” w pulpicie nawigacyjnym i wybierając opcję „Rurociąg”.
- W sekcji „Rurociąg” wybierz „skrypt rurociągu”.
- Wklej zawartość Jenkinsfile, które są podane w poprzednim przykładzie.
- Zapisz projekt, klikając przycisk „Zapisz”.
- Kliknij przycisk „Build Now”, aby uruchomić JenkinsFile.
Możesz wyświetlić wyjście JenkinsFile, klikając numer kompilacji w sekcji „Historia kompilacji” na pulpicie nawigacyjnym.
Udaj się do sekcji „Wyjście konsoli”, aby wyświetlić wiadomość z polecenia Echo.
Dobrze jest pamiętać, że możesz zdefiniować znacznie więcej w Jenkinsfile. Niektóre typowe bloki, które możesz napotkać, obejmują:
- Środowisko - blok środowiska służy do ustawiania zmiennych środowisk.
- Post - możemy użyć bloku postu, aby określić kroki, które należy wykonać po zakończeniu głównych kroków rurociągu.
- Try/Catch - Kolejnym standardowym blokiem jest blok próba/catch. Służy do obsługi wyjątków, które mogą wystąpić podczas wykonywania rurociągu Jenkins. Możesz zbadać nasz samouczek na ten temat, aby dowiedzieć się więcej.
- Równolegle - blok równoległy pozwala nam zdefiniować serię kroków wykonywanych równolegle.
- Wejście - znajdziesz także blok wejściowy w większości Jenkinsfile. Ten blok służy do zatrzymania rurociągu Jenkins i poprosić o dane wejściowe od użytkownika.
- ZNACZENIE - Wreszcie, kolejnym standardowym blokiem w Jenkinsfile jest blok czasu znaczników czasu. Służy to do dodania znaczników czasu do wyjścia rurociągu Jenkins.
Możesz zbadać dokumentację dotyczącą deklaratywnej składni Jenkins, aby dowiedzieć się więcej o różnych blokach, których możesz użyć.
Wniosek
Omówiliśmy, w jaki sposób możesz stworzyć Jenkinsfile. Omówiliśmy również anatomię Jenkinsfile, badając główny rurociąg Hello World.