Jenkins 2 ma rurociągi ma obywatela pierwszej klasy. Jednak w przykładach zadania wydają się być wykonywane jako pojedyncza sekwencja:
node {
// Mark the code checkout 'stage'....
stage 'Checkout'
// Get some code from a GitHub repository
git url: '[email protected]:elifesciences/elife-bot.git'
// Mark the code build 'stage'....
stage 'Build'
echo "Unit tests will run here"
stage "Production"
echo "Deploying to production environment"
}
W przypadku wdrożenia w systemie produkcyjnym często przydatne jest ręczne zatwierdzenie; czy istnieje sposób, aby wstawić przycisk ręczny do naciśnięcia w rurociągu?
Szukałem możliwych kroków, aby to osiągnąć w dokumentach , ale bezskutecznie.
input
krok w potoku, który zatrzymuje się i prosi użytkownika o wprowadzenie danych (lub przerwanie kompilacji). Jednak scena i wskaźnik stanu wciąż migają, a ja chciałem stabilnego stanu (np.Odpowiedzi:
wejście jest opcją, której szukasz. Oto jak go używam. Ważne jest, aby mieć krok poza węzłem, w przeciwnym razie Jenkins zatrzyma agenta czekającego na następny krok. Pamiętaj, że drugi węzeł może nie używać tego samego obszaru roboczego co pierwszy.
źródło
Na koniec stworzyłem osobne
test-project
iprod-project
potoki, w których na końcutest-project
kod jest scalany wapproved
gałąź.Następnie
prod-project
potok można skonfigurować tak, aby nie uruchamiał się dla każdego nowego zatwierdzenia, aby można go było wdrożyć na żądanie.źródło
Dodatkowo możesz również dodać limit czasu automatycznego, jak poniżej
Jeśli spojrzysz na to, możesz również powiązać dane wejściowe Jenkins z danymi uwierzytelniającymi użytkowników uzyskujących dostęp do Jenkins, jeśli chcesz zezwolić tylko określonym osobom na udzielanie odpowiedzi - jest to również uzasadnione faktem, że twoje kontrole Git są wystarczające.
źródło
To tylko prosty przykład, ale możesz go uruchomić w dowolny sposób.
źródło
Zrobiłem to, jak pokazano poniżej, czytając te dokumenty https://jenkins.io/doc/book/pipeline/syntax/
źródło