Как сохранить номер сборки при переносе задания Дженкинса?

У нас есть задание Jenkins, работающее на экземпляре сервера Jenkins A. Текущий номер сборки для этого задания, скажем, 58.

Мы переносим это задание Jenkins на новый сервер Jenkins — B. Однако необходимо сохранить номер сборки — 58 с предыдущего сервера в этом новом экземпляре Jenkins B.

Это возможно? Если да, то как?

Спасибо


person sumant    schedule 19.01.2016    source источник


Ответы (2)


Если вы only намереваетесь сохранить build number нетронутым для работы на новом сервере Jenkins, вы можете добиться этого, просто написав сценарий, который заполнит файл nextBuildNumber в $JENKINS_HOME/jobs/<job_name>/ соответствующим #buildnumber, который вы хотите иметь.

Что-то вроде этого (script.sh): -

#!bin/bash -x
JENKINS_HOME=/var/lib/jenkins
mkdir -p $JENKINS_HOME/jobs/<new_job> && cp $JENKINS_HOME/jobs/<old_job>/* $JENKINS_HOME/jobs/<new_job>/
OLD_BUILD_NO=`cat $JENKINS_HOME/jobs/seed/nextBuildNumber`
NEW_BUILD_NO=`expr $OLD_BUILD_NO - 1`
echo $NEW_BUILD_NO > $JENKINS_HOME/jobs/<new_job>/nextBuildNumber
chown -R jenkins:jenkins $JENKINS_HOME/jobs/temp/

Теперь запустите этот скрипт как: -

sudo bash script.sh

Хотя он создает требуемое задание в том же экземпляре сервера jenkins, основная идея такая же.. для заполнения файла nextBuildNumber.

person prvn    schedule 19.01.2016
comment
Спасибо. Я считаю, что другим вариантом является установка плагина Jenkins «Номер следующей сборки», но это исключено на нашем предприятии. Это работает как ссылка, чтобы начать сейчас. Спасибо - person sumant; 21.01.2016

Принятый ответ на изменение файла nextBuildNumber, к сожалению, не сработал для меня, но нашел этот ответ jayan в другом вопросе Stackoverflow. :

https://stackoverflow.com/a/34951963

Попробуйте запустить приведенный ниже скрипт в Jenkins Script Console. Измените «workFlow» на свой

Jobname

def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
person Carsten Mück    schedule 16.01.2020