【问题标题】:How to retain the build number while migrating a Jenkins job?如何在迁移 Jenkins 作业时保留内部版本号?
【发布时间】:2016-01-19 01:13:25
【问题描述】:

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

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

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

谢谢

【问题讨论】:

    标签: jenkins build build-numbers


    【解决方案1】:

    如果您 only 打算在新的 Jenkins 服务器中保持 build number 完整的工作,您可以通过编写一个脚本来实现它,该脚本将使用适当的 # 填充 $JENKINS_HOME/jobs/<job_name>/ 中的 nextBuildNumber 文件您希望拥有的版本号。

    类似这样的东西(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 文件。

    【讨论】:

    • 谢谢。我相信另一种选择是安装 Jenkins 插件“下一个内部版本号”,但这在我们的企业中被排除在外。这可以作为现在开始的参考。谢谢
    【解决方案2】:

    遗憾的是,修改 nextBuildNumber 文件的公认答案对我不起作用,但在另一个 Stackoverflow 问题中通过jayan 找到了这个答案:

    https://stackoverflow.com/a/34951963

    尝试在 Jenkins 脚本控制台中运行以下脚本。将“workFlow”更改为您的

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      相关资源
      最近更新 更多