Ответ 1
С первого взгляда, здесь рабочий процесс Jenkins (без дополнительных плагинов)
- [При необходимости, если необходимо] Установите инструменты (например, JDK, Ant, Maven и т.д.).
- [Необязательно] Выполните проверку SCM (например, SVN или Git).
- Выполните этап сборки (например, проект Ant, код компиляции и т.д.).
- [Дополнительно] Выполнять шаги после сборки (например, Архивировать артефакты, отправлять электронную почту и т.д.).
Существуют плагины, которые позволяют выполнять действия сразу после установки Инструменты, такие как Pre-SCM-step и EnvInject. Также есть плагины, которые добавляют намного больше возможных шагов сборки и этапа после сборки.
Разница между этапами Build и Post-build частично основана на логическом разделении, частично на конфигурации рабочего процесса.
С логической точки зрения, когда вы создаете/компилируете проект, это шаг "Сборка", тогда как при архивировании артефактов, поскольку это происходит после сборки, это шаг "После сборки".
Но также есть соображения конфигурации рабочего процесса, и это имеет все, что связано с:
- " Когда выполняются сбои сборки" и
- " Состояние сборки" (например, "Успех", "Нестабильный", "Сбой" )
Когда есть multiple "Build" шаги, Jenkins:
- Выполняет первый шаг сборки
- Проверяет код выхода первого шага сборки
- Если код выхода
0
(успех), Дженкинс продолжает следующий шаг сборки (если есть) - Если код выхода не является
0
(сбой), то метки Jenkins строятся какFAILED
и продолжают выполнять действия Post-build.
- Если код выхода
- Jenkins выполняет шаги после сборки (независимо от того, была ли построена отметка
FAILED
или нет)
Итак, другими словами:
- Если шаг сборки завершен, Jenkins может выполнить следующие шаги сборки (если есть).
- Если шаг сборки завершился неудачно, Jenkins не выполнит следующие шаги сборки.
- Если выполнить все шаги сборки, Дженкинс отметит build
SUCCESS
. - Если не удалось выполнить любой шаг сборки, Jenkins отметит build
FAILED
. - Шаги после сборки выполняются независимо от Состояние сборки (
FAILED
или нет).
Технически все шаги после сборки должны выполняться в любое время, однако на практике, если исключения этапа Post-build, задание никогда не завершается, что может привести к выполнению некоторых шагов после сборки.
Кроме того, как правило, шаги Post-build не изменяют Состояние сборки, но есть некоторые, которые специально предназначены для этого (например, при архивировании артефактов вы можете выбрать отметку build FAILED
если не все артефакты найдены, даже если после всех шагов сборки строчка была отмечена SUCCESS
)
Итак, зная вышеизложенное, вы несете ответственность за разработку своей работы и решаете, какие шаги нужно выполнять один за другим, только если предыдущий был успешным и повлияет на статус сборки (т.е. шаги сборки) и какие шаги должны происходить в любое время независимо от результата (т.е. шаги после сборки).
EDIT:
Поскольку я продолжаю получать комментарии, вот скриншот совершенно новой чистой установки Jenkins (Windows) ver.1.634 (как упоминалось в комментариях).
На скриншоте обратите внимание на следующее:
- Новый проект Freestyle.
- Полоса прокрутки полностью вниз, на странице больше ничего нет.
- Версия 1.634 (по запросу).
- Сборка с Добавить шаг сборки.
- Послестроить действия с помощью Добавить действие после сборки.
Итак, чтобы повторно повторить мой предыдущий комментарий:
Существует только одно сообщение "ничего"
хотите ли вы назвать его "шаг" или "действие" (Дженкинс изменил маркировку на протяжении многих лет).
Пользовательские плагины могут добавить много дополнительных функций, но для чистой установки основное задание выполняется так, как я описал.