Jenkinsfile sen

Jenkinsfile sen

Podczas pracy z potokami Jenkins napotkasz przypadki, w których musisz zatrzymać wykonanie konkretnej kompilacji na dany czas.

Istnieją różne powody, dla których musisz zatrzymać pracę Jenkins: możesz zatrzymać zadanie Jenkinsa, aby czekać na zewnętrzne zależności. Na przykład, jeśli kompilacja zależy od zasobów zewnętrznych lub procesów, które nie są jeszcze dostępne, może być konieczne zatrzymanie się, dopóki wymagane zależności będą gotowe.

Innym powodem jest rozkład zasobów. Jeśli masz dostępne ograniczone zasoby, takie jak agenci kompilacji lub środowiska testowe, może być konieczne wstrzymanie kompilacji, aby zapewnić, że zasoby te są wykorzystywane wydajnie.

W tym samouczku dowiemy się, jak korzystać z funkcji snu w Jenkinsfile, aby umożliwić zatrzymanie rurociągu Jenkins na dany czas trwania.

Jenkinsfile sen

W Jenkinsfile możemy wprowadzić blok snu, który określa informacje o sodzie dla danej kompilacji. Ten blok pozwala nam zdefiniować czas trwania i jednostkę, którą dana praca będzie spać. Zazwyczaj jest używany do wprowadzenia opóźnienia w procesie kompilacji z jednego z wyżej wymienionych powodów, takich jak dopuszczanie czasu na dostępne zależności zewnętrzne lub dystrybucja zasobów.

Składnia bloku snu w Jenkins jest jak pokazano:

sen (czas: int, jednostka: str)

Sekcja czasu pozwala określić czas, dla którego kompilacja będzie spać. To jest nieopcyjna wartość liczb całkowita.

Z drugiej strony sekcja jednostki określa parametr czasu dla kompilacji. Zaakceptowane wartości obejmują nanosekund, mikrosekund, milisekund, sekundy, minuty, godziny i dni.

Jest to opcjonalny parametr, a Jenkins będzie domyślnie do sekund, jeśli nie zostanie określony.

Przykładowe użycie

Poniżej pokazuje prosty przykład Jenkinsfile:

rurociąg
agent dowolny
Etapy
etap („start”)
kroki
sh 'data +%s'


etap („pauzing”)
kroki
Sen (czas: 2, jednostka: „minuty”)


etap („end”)
kroki
sh "data +%s"



Powyższy rurociąg powinien zatrzymać kompilację przez 2 minuty.

Po uruchomieniu powyższej kompilacji powinieneś uzyskać dane wyjściowe jak pokazano:

[Rurociąg] Rozpoczęcie rurociągu
[Rurociąg] Węzeł
Bieganie na 172.27.247.69 in/home/debian/jenkins/roboczy/slep_demo
[Rurociąg]
[Rurociąg] etap
[Rurociąg] (start)
[Rurociąg] sh
+ Data +%s
1672556534
[Rurociąg]
[Rurociąg] // etap
[Rurociąg] etap
[Rurociąg] (pauzing)
[Rurociąg] Sen
Spanie przez 2 minuty 0 sekund
[Rurociąg]
[Rurociąg] // etap
[Rurociąg] etap
[Rurociąg] (end)
[Rurociąg] sh
+ Data +%s
1672556654
[Rurociąg] // etap
[Rurociąg] Koniec rurociągu
Ukończone: sukces

Jenkins zatrzymuje się w systemach UNIX

Jeśli nie chcesz używać bloku snu Jenkins, możesz zatrzymać zadanie przez dany czas za pomocą polecenia snu w systemach Unix.

Składnia jest jak pokazana:

Czas trwania snu

gdzie czas trwania oznacza liczbę sekund, które skrypt powinien zatrzymać się, musi to być wartość liczb całkowita lub zmienna zawierająca wartość liczb całkowitą.

W Jenkinsfile możesz wywołać polecenie Sleep za pomocą polecenia SH:

sh 'sleep'

Wniosek

W tym artykule nauczyłeś się używać bloku snu w Jenkinsfile, aby zatrzymać wykonanie danej kompilacji przez określony czas. Blok pozwala nam zdefiniować przedział czasu i jednostkę czasu.