Как сохранить номер сборки при переносе задания 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:

/questions/24399516/ustanovit-nomer-sborki-dlya-sborki-rabochego-protsessa-jenkins-konvejera/24399526#24399526

Попробуйте запустить сценарий ниже в консоли сценариев Jenkins. Измените "workFlow" на свой

Jobname

def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()
Другие вопросы по тегам