jenkinsfile指定jenkins流水线的构建号

背景

升级Jenkins过程中不小心导致流水线配置文件job目录丢失, 重新配置流水线后所有流水线构建号码都从1开始构建了, 然而我们的产品关联了jenkins构建号,重新从1 构建会导致各种问题.

解决方案

在Jenkinsfile文件中指定流水线的构建号为一个不存在的数字, 这样就不会冲突了. 用Jenkins.get().getItemByFullName("${env.JOB_NAME}").updateNextBuildNumber(10000) 可以更新当前流水线的下一次构建号. 注意需要修改自己指定构建号例如10000, 在第二次构建时构建号就会变成10000

Jenkinsfile 如下:

pipeline {
	agent any

	stages {
    	stage('修改构建号') {
    		steps {
    			script {
    				Jenkins.get().getItemByFullName("${env.JOB_NAME}").updateNextBuildNumber(10000)
    			}
    		}
    	}
	}			
	
}	

脚本命令行里面可以直接执行Jenkins.get().getItemByFullName("你的job名称").updateNextBuildNumber(10000)
来更新单个job的构建号.

或者也可以定义成函数

@NonCPS
def updateBuildNumber(build_number) {
  def job = Jenkins.instance.getItemByFullName("${env.JOB_NAME}", Job.class)
  	job.nextBuildNumber = build_number
  	job.saveNextBuildNumber()
  	build env.JOB_NAME
  	return true
}
pipeline {
	agent any

	stages {
    	stage('修改构建号') {
    		steps {
    			script {
    				updateBuildNumber(10000)
    			}
    		}
    	}
	}			
	
}

参考

  1. Set build number for Jenkins workflow (pipeline) builds
  2. How to set next build number in Pipeline job?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值