Зміна номера збірки Дженкінса


142

Чи є спосіб змінити номер збірки, який надсилається електронною поштою після завершення завдання? Проблема полягає в тому, що складання продукту НЕ робиться Дженкінсом, тому ми хочемо отримати номер збірки (тобто з текстового файлу) та оновити номер збірки в Дженкінсі, щоб відповідати цьому. Я спробував встановити номер збірки:

set BUILD_NUMBER=45

Але в електронній пошті все ще відображається номер складання, який Джинкінс встановив спочатку.

Відповіді:


259

Якщо у вас є доступ до консолі сценарію (Manage Jenkins -> Script Console), ви можете зробити наступне:

Jenkins.instance.getItemByFullName("YourJobName").updateNextBuildNumber(45)

7
Я можу переконатися, що це працює ідеально для вирішення проблеми. Я вручну скопіював історію збірки між двома серверами jenkins, і на новому сервері nextBuildNumber помилився. Виконавши це, я дозволив встановити правильний новий nextBuildNumber, не потрібно перезавантажувати конфігурацію jenkins.
Філ Холленбек

5
Якщо ви використовуєте плагін GitHub, "YourJobName"є "organization/repository/branchname".
Рууд

15
Працює. Значення можна перевірити, не будуючи, використовуючи:Jenkins.instance.getItemByFullName("YourJobName").getNextBuildNumber()
Даніель Алдер

7
Я можу підтвердити, що це також працює для MultiBranch-Pipelines. "JobName" вказано вгорі сторінки відділення: Повна назва проекту: PipelineName/BranchNameтак було бJenkins.instance.getItemByFullName("YourPipelineName/YourBranchName").updateNextBuildNumber(45)
Маркус


37

можна зробити за допомогою плагіна: https://wiki.jenkins-ci.org/display/JENKINS/Next+Build+Number+Plugin

більше інформації: http://www.alexlea.me/2010/10/howto-set-hudson-next-build-number.html

якщо плагін вам не подобається:

Якщо ви хочете змінити номер збірки через файл nextBuildNumber, вам слід "Перезавантажити конфігурацію з диска" на сторінці "Керування Дженкінсом".


2
Не потрібно використовувати плагін.
david.perez

1
Спасибі, ти врятуєш мій день.
Юкіо Фукузава

29

Під папкою робочої області завдання виберіть:

C:\Program Files (x86)\Jenkins\jobs\job_name

є файл з іменем nextBuildNumber.

Встановлення номера збірки у файлі та перезавантаження конфігурації з диска (керування меню Дженкінса) змусить наступну збірку ви починаєте мати значення з файлу як BUILD_NUMBER.


9
Ви перезавантажили конфігурацію з диска (Manage Jenkins menu) після зміни файла nextBuildNumber?
везенков

Ні! Я думав, що це сталося автоматично.
hfossli

Це прекрасно працювало для мене. Ви повинні перезавантажити сервер, перш ніж це вплине.
Hawkeye64

Перезавантажити сервер - це біль, якщо у вас багато користувачів, які працюють на конвеєрі. Краще уникати подібного рішення
MorganGeek

8

Якщо у вас є ім'я гілки, включаючи форвард-слэш (використовуючи, наприклад, потік git ), вам потрібно буде замінити пересувальну косу рису на символ Unicode % 2F у назві гілки.

Ось приклад для конвеєра My-Pipeline-Name та випуску гілки / my-release-branch-name

Jenkins.instance.getItemByFullName("My-Pipeline-Name/release%2Fmy-release-branch-name").updateNextBuildNumber(BUILD_NUMBER)

Мені вдалося дізнатися про це, виконавши наступну команду, яка перелічить різні завдання (гілки) для вашого конвеєра

Jenkins.instance.getItem("My-Pipeline-Name").getAllJobs()

Сподіваюся, це допомагає.


5

Можливо, комбінація цих плагінів може стати в нагоді:


Велике спасибі - мені вдалося скористатися одним із плагінів.
erman8

1

Ви можете змінити номер збірки, оновивши файл $ {JENKINS_HOME} / jobs / job_name / nextBuildNumber на сервері Jenkins.

Ви також можете встановити плагін Next Build Number плагін для зміни номера збірки за допомогою CLI або UI


Зауважте, що змінити номер збірки у файлі nextBuildNumber самостійно недостатньо, також потрібно виконати "Перезавантажити конфігурацію з диска" в меню "Керування Дженкінсом".
falstaff

-4

Використовуючи змінні середовища:

$BUILD_NUMBER =4

2
Будь ласка, не кричи. Дякую.
OliBlogger
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.