Użyj Stash w Jenkins

Użyj Stash w Jenkins

W tym samouczku dowiemy się, w jaki sposób możemy użyć kroków Jenkins Stash w rurociągu do kopiowania lub przenoszenia plików z kontrolera Jenkinsa do innego hosta.

Podczas pracy w Jenkins możesz napotkać scenariusz, w którym zadanie produkuje określone pliki i katalogi. Jednak ponieważ wyprodukowane pliki i znajdujące się na agencie, na którym zadanie zostało uruchomione, musimy wymyślić sposób przeniesienia plików do innego hosta.

Co to jest w Jenkins?

Krok Stash w Jenkins pozwala nam zapisywać pliki i katalogi do późnego użycia w dowolnym węźle lub przestrzeni roboczej podłączonym do kontrolera. Domyślnie Jenkins odrzuci schowane pliki po zakończeniu rurociągu.

Dobrze jest pamiętać, że zebrane pliki nie są dostępne w innych rurociągach lub zadaniach w kontrolerze Jenkins. Jeśli chcesz przesyłać pliki między zadaniami lub rurociągami, zamiast tego użyj modułu ArchiveartIfacts.

Kolejną rzeczą, o której należy pamiętać o kroku Stash w Jenkins, jest to, że najlepiej jest zarezerwować dla małych plików. Wynika to z faktu, że zebrane pliki są dostępne w archiwizowanym, skompresowanym formacie smoły, który może być intensywnie zasobów dla plików powyżej 100 MB. W przypadku dużych plików rozważ użycie zewnętrznej wtyczki Manage Manage.

Jenkins Stash Składnia

Poniżej pokazuje składnię kroku skrytki Jenkinsa. Krok akceptuje następujące parametry:

  1. Nazwa: ciąg - To jest typ ciągu, który określa nazwę skrytki. Powinien to być prosty identyfikator, który odwołuje się do docelowego zadania, choć nie jest to wymagane.
  2. Zezwolenie: boolean - Zezwolenia to opcja boolowska, która określa, czy skrytka powinna zostać utworzona, nawet jeśli nie są dostępne pliki. Domyślnie ta opcja jest ustawiona na false, a Jenkins zwróci błąd, jeśli nie są dostępne pliki do przechowywania.
  3. wyklucz: ciąg - Ten opcjonalny parametr umożliwia zdefiniowanie zestawu plików i katalogów, które chcesz wykluczyć ze skrytki. Użyj listy oddzielonej przecinki, aby określić pliki, które chcesz wykluczyć. Aby wybrać wzór, użyj listy wzorów mrówek.
  4. Obejmuje: ciąg - podobny do wzoru wyklucz, ale określa pliki, które należy uwzględnić w skrytce.
  5. używanefaultExCludes: boolean - Ten parametr logiczny umożliwia użycie domyślnego wyklucza z Ant. Domyślnie wartość jest ustawiona na true.

Przykładowa demonstracja

Użyjemy kontrolera Jenkinsa związanego z agentami Debian 11 i Debian 10, aby zademonstrować, w jaki sposób możemy użyć kroku Stash w Jenkins.

Następnie użyjemy Jenkinsfile, jak pokazano poniżej:

rurociąg
agent żaden
Etapy
etap („start”)
agent etykieta „debian11”
kroki
cii "'
Dotknij próbki.cii
mkdir -p reż
dotknij dir/próbka_nested.cii
dotknij Dir/Sample_Nested2.cii
''
Stash (nazwa: „samplestash”)


etap („Verify Files”)
agent etykieta „debian10”
kroki
Untash „samplestash”
sh 'drzewo'



Powyższy przykładowy rurociąg rozpoczyna się od utworzenia przykładowych plików do celów demonstracyjnych. Następnie używamy kroku Stash, aby utworzyć samplestash ze wszystkimi wygenerowanymi plikami. Wreszcie, Unstash pliki w agenta docelowym za pomocą kroku Unstash.

Po uruchomieniu rurociągu powinniśmy uzyskać wyjście, jak pokazano:

Ze powyższego wyjścia możemy zobaczyć, że pliki zostały zatrzymane i nieokreślone w węźle Debian11 i nieokreślone w węźle Debian 10.

Wniosek

W tym artykule nauczyłeś się podstaw pracy z Stash i Undash w Jenkins.