2013-03-03 16 views
6

Mam długą pracę Jenkinsa z nieudaną akcją.Jenkins - Jak uruchomić akcję po instalacji bez ponownego uruchamiania zadania?

W jaki sposób mogę wielokrotnie uruchamiać akcję po wybudowaniu bez ponownego uruchamiania całego zadania?

+0

Jaki rodzaj działań po wybudowaniu? Czy jest to coś, co można umieścić w samodzielnej pracy, wyzwalającej pierwotną pracę? –

+0

Analiza statyczna zbudowanych obiektów.Wolałbym nie rozdzielać go na swoją własną pracę, miałem nadzieję, że będzie standardowy sposób robienia tych rzeczy, ponieważ są one dość powszechne. – Craig

+0

Och, może być! (Używam tylko Jenkinsa przez kilka tygodni ...) –

Odpowiedz

0

W zależności od rodzaju akcji jedną z podstawowych opcji może być po prostu podzielenie go na samodzielne zadanie, wywołane przez oryginał. W ten sposób możesz ponownie uruchomić go ręcznie.

Aby udostępnić artefakty lub obszary robocze między dwoma pracy, następujące pluginy wiosny do głowy:

1

W zależności od tego, co twoje kroki kompilacji są, może być w stanie "pomiń" je.

Na przykład moje kroki kompilacji to pliki wsadowe powershell i windows.

Jeśli chcę pominąć krok, po prostu dodaj "exit 0" jako pierwszy wiersz polecenia powershell lub batch.

Należy pamiętać, że nadal będą wykonywane inne czynności wstępne, takie jak czyszczenie obszaru roboczego i uruchamianie skanów SCM.

+0

dziękuję, ale nie działa, ponieważ kroki po budowaniu opierają się na długim etapie budowy – Craig

4

Jeżeli podział pracy do 2 miejsc pracy nie wchodzi w grę, można rozważyć
https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin
(to jest z preinstalowanym Jenkins wierzę). To sprawi, że kroki "promocji" będą oddzielnym i powtarzalnym procesem. Można go skonfigurować tak, aby uruchamiał się automatycznie po kompilacji, a następnie ręcznie na żądanie w razie potrzeby.

Jeśli kroki po kompilacji wymagają dostępu do artefaktów kompilacji, należy użyć obiektu https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin, aby skopiować artefakty kompilacji do obszaru roboczego promocji.

Kolejnym rozwiązaniem jest pomiń krok budowania na podstawie parametru. Masz parametr o nazwie o nazwie SkipBuild lub coś podobnego. Ustaw możliwe wartości na true/false, domyślnie FAŁSZ

W swojej Budowa kroku, zanim rzeczywiście budynku, sprawdź czy SkipBuild jest ustawiony na TRUE. Jeśli TRUE, zakończ 0, jeśli FALSE (co jest domyślne), uruchom polecenie budowania.

W ten sposób automatyczne wykonywanie kompilacji zawsze spowoduje wykonanie kroku Kompilacja. Ale możesz również ręcznie uruchomić kompilację i wybrać "SkipBuild = TRUE", aby pominąć krok budowania i przejść od razu do akcji po budowaniu. Jeśli chcesz pominąć niektóre działania wykonywane po budowaniu, musisz również wprowadzić parametr SkipBuild.

Uważaj jednak, ponieważ późniejsze egzekucje kompilacji, nawet przy "SkipBuild = TRUE", nadal będą wykonywać polecenie SVN, więc Twój obszar roboczy może się zmienić.

+0

Czy możesz wyjaśnić, w jaki sposób wtyczka 'Promoted Builds' działa bez wielu zadań? Dokumentacja wspomina o automatycznej promocji tylko wtedy, gdy zostanie wywołana przez inną pracę. – Craig

+0

"Awansowane kompilacje" pozwala wykonywać akcje na istniejących wcześniejszych kompilacjach. Zachowuje pewne informacje z poprzedniej wersji, na przykład '$ PROMOTED_NUMBER', która wskazuje, która z poprzednich wersji jest uruchomiona. Jednak nadal musisz użyć 'Copy Artifact Plugin', aby uzyskać dostęp do artefaktów z poprzednich kompilacji. W komentarzach nie ma wystarczającej ilości miejsca, aby to wyjaśnić, ale w skrócie "promocja" pozwala na normalne uruchamianie dowolnych działań związanych z budowaniem i post-build. Jeśli nie chcesz, aby był uruchamiany automatycznie, możesz ustawić go "Tylko wtedy, gdy ręcznie zatwierdzony" – Slav

+0

Mam długie wyjaśnienie, w jaki sposób archiwizować artefakty tutaj: http://stackoverflow.com/questions/15140580/jenkins-continuous -dostawa-z-współdzieloną-przestrzenią roboczą i inne długie wyjaśnienia na temat promocji tutaj http://stackoverflow.com/questions/15126059/how-to-promote-a-specific-build-number-from-another-job-in- Jenkins. W twoim przypadku przeczytaj, w jaki sposób zadanie 'deploy 'używa' artefaktu' copy artifacts 'i faktycznie to robi jako pierwszy krok kompilacji w zadaniu promocyjnym. Następnie, jako drugi krok kompilacji, wykonaj swoją analizę statyczną – Slav

Powiązane problemy