Как сохранить номер сборки при переносе задания Jenkins?
У нас есть задание Jenkins, запущенное на экземпляре сервера Jenkins A. Текущий номер сборки для этого задания, скажем, 58.
Мы переносим это задание Jenkins на новый сервер Jenkins - B. Однако необходимо сохранить номер сборки - 58 от предыдущего сервера в этом новом экземпляре Jenkins B.
Это возможно? Если да, то как?
Спасибо
1 ответ
Если ты only
намерены сохранить build number
без изменений для работы на новом сервере Jenkins Server, вы можете достичь этого, просто написав скрипт, который заполнит 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.
Принятый ответ на изменение файла nextBuildNumber, к сожалению, не сработал для меня, но нашел этот ответ от Jayan в другом вопросе Stackru:
Попробуйте запустить сценарий ниже в консоли сценариев Jenkins. Измените "workFlow" на свой
Jobname def job = Jenkins.instance.getItem("workFlow") job.nextBuildNumber = 10 job.saveNextBuildNumber()