迁移 Jenkins 作业时如何保留内部版本号?

How to retain the build number while migrating a Jenkins job?

我们在 Jenkins 服务器实例 A 上有一个 Jenkins 作业 运行。这个作业的当前内部版本号是 58。

我们正在将此 Jenkins 作业迁移到新的 Jenkins 服务器 - B。但是,需要保留内部版本号 - 58 来自此新 Jenkins 实例 B 中的先前服务器。

这可能吗?如果是,如何?

谢谢

如果您 only 打算在新的 Jenkins 服务器中保持 build number 完整无缺,您只需编写一个将填充 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 在另一个 Whosebug 问题中找到了这个答案:

Try running below script in Jenkins Script Console.. Change "workFlow" to your

Jobname

def job = Jenkins.instance.getItem("workFlow")
job.nextBuildNumber = 10
job.saveNextBuildNumber()