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?

猜你喜欢

转载自blog.csdn.net/qq_26545503/article/details/132010886