Мы находимся в процессе перехода от VSoft Continua CI к Jenkins для нашей среды управления сборкой. Поскольку мы используем слегка измененный процесс Gitflow, мы хотели бы, чтобы Jenkins мог строить из любой функции, выпуска или исправления, ветвления и запросов на извлечение, мы решили пойти по конвейеру Jenkins.
Номер версии для сборок из веток выпуска и исправлений основан на имени ветки (например, выпуск / 2.1.0), в то время как сборки из любой другой ветки или запроса на извлечение основаны на дате (например, 6 сентября 2018 года разрешается до 18,9 +0,6). Continua CI предоставляет номер сборки с автоматическим приращением во всех конфигурациях сборки, поэтому мы используем этот номер сборки в качестве заключительной части нашего номера сборки (например, 2.1.0.10, 18.9.6.11, 2.1.0.12, ...). Этот сгенерированный номер версии передается в качестве параметра в MSBuild, используя этот номер версии в качестве версии файла и версии сборки наших двоичных файлов .NET.
Я ищу подобное решение в Дженкинсе. Конвейер Jenkins назначает отдельный номер сборки с автоматическим приращением для каждой ветви и запроса на извлечение, что может привести к двум сборкам из разных ветвей с одинаковой версией. Я уже пытался использовать глобальные переменные среды для хранения версии и увеличения значения при каждой сборке, но кажется, что глобальные переменные среды нельзя установить из задач конвейера.
Есть ли у проекта Jenkins Pipeline способ совместно использовать номер сборки по всем ветвям / запросам на извлечение?