2016-10-07 18 views
26

Poprzedni Jenkins2 Użyłem Build Pipeline Plugin do zbudowania i ręcznego wdrożenia aplikacji na serwer. Old konfiguracja: jenkins-pipeline-pluginJenkins, jak utworzyć instrukcję obsługi rurociągu Krok

że działa świetnie, ale chcę użyć nowego Jenkins rurociągu, generowane z Groovy skryptu (Jenkinsfile), aby utworzyć instrukcja krok.

Do tej pory wymyśliłem input krok Jenkinsa.

używany skrypt jenkinsfile:

node { 
    stage 'Checkout' 
    // Get some code from repository 

    stage 'Build' 
    // Run the build 
} 

stage 'deployment' 
input 'Do you approve deployment?' 
node { 
    //deploy things 
} 

Ale to czeka na dane użytkownika, zauważając, że budowa nie została zakończona. Mógłbym dodać timeout input, ale to nie pozwoli mi podnieść/wywołać zbudować i wdrożyć go później:

jenkins-pipeline

Jak mogę achive sam/rezultat similiar ręcznego kroku/wyzwalacza z nowym jenkins-pipeline jak wcześniej z Build Pipeline Plugin?

+0

Mam ten sam problem. Potok działa, ale bardzo bym wolał, aby moja kompilacja była pokazywana jako udana i ma ręczne działanie, aby wdrożyć/wypromować kompilację. – Thomas

+0

To powinno zostać rozwiązane za pomocą wtyczki "checkpoint". Ale obecnie nie jest to możliwe w wersji OSS, ale głosowanie odbywa się w ich trackerze problemów [JENKINS-33846] (https://issues.jenkins-ci.org/browse/JENKINS-33846) – Zigac

Odpowiedz

14

To jest ogromna luka w zakresie możliwości IMO w zakresie rurociągów Jenkins. Zdecydowanie trudno to zapewnić ze względu na fakt, że rurociąg jest pojedynczym zadaniem. Jednym z rozwiązań może być "zarchiwizowanie" obszaru roboczego jako "artefaktu" (tar i archiwum **/* jako "workspace.tar.gz"), a następnie ponowne skopiowanie artefaktu i rozpakowanie go do nowego obszaru roboczego. To pozwala drugiemu rurociągowi na odbiór tam, gdzie poprzedni został przerwany. Oczywiście nie ma sposobu, aby badacz nie mógł wykonać drugiego rurociągu poza kolejnością lub więcej niż raz. Co jest złe. Wtyczka Delivery Pipeline naprawdę świeci tutaj. Wykonujesz nowy potok bezpośrednio z widoku - zamiast pierwszego zadania. W każdym razie - nie wiele z odpowiedzi - ale jest to ścieżka, którą mam zamiar spróbować.

EDIT: Ta wtyczka wygląda obiecująco:

https://github.com/jenkinsci/external-workspace-manager-plugin/blob/master/doc/PIPELINE_EXAMPLES.md

+6

Ta luka jest tak ogromna, można to nazwać "zepsutą konstrukcją". Z tego powodu nadal używamy wtyczki Delivery Pipeline. Konfiguracja połączenia zadań jest nieco skomplikowana, ale działa dobrze i pozwala na uzyskanie drobiazgowych uprawnień. Badamy przejście do Gitlab CI, ale ich potoki mogą wykonywać ręczne czynności. Nie jestem pewien, co przeszkadza Jenkinsowi. –

+0

Cóż, ta wtyczka wygląda naprawdę obiecująco, więc jeśli rozumiem, mogę zainstalować potok w górę strumienia jako oddzielną funkcję automatyczną, która wykona potok budujący i przetwarzający, który udostępni przestrzeń roboczą z wyprzedzeniem i gdzie będę mógł zaimplementować przycisk, który powinien działać następnie. – kensai