我正在使用Jenkins和Gradle来构建我的java项目.
每次我构建我的项目时,我都会在Jenkins屏幕上获得一个新的内部版本号.
以下是我的Jenkins构建信息:
Success > Console Output #96 03-Jan-2014 15:35:08
Success > Console Output #95 03-Jan-2014 15:27:29
Failed > Console Output #94 03-Jan-2014 15:26:16
Failed > Console Output #93 03-Jan-2014 15:25:01
Failed > Console Output #92 03-Jan-2014 15:23:50
Success > Console Output #91 03-Jan-2014 12:42:32
Success > Console Output #90 03-Jan-2014 12:02:45
Run Code Online (Sandbox Code Playgroud)
我想重置Jenkins内部版本号,如:
Success > Console Output #1 03-Jan-2014 12:02:45
Run Code Online (Sandbox Code Playgroud)
如何在Jenkins中重置内部版本号?
提前致谢.
小智 140
从groovy脚本控制台可以更容易地完成.转到http:// your-jenkins-server/script 在脚本窗口中输入:
item = Jenkins.instance.getItemByFullName("your-job-name-here")
//THIS WILL REMOVE ALL BUILD HISTORY
item.builds.each() { build ->
build.delete()
}
item.updateNextBuildNumber(1)
Run Code Online (Sandbox Code Playgroud)
jas*_*dan 34
Amo*_*kar 19
如果你想设置下一个内部版本号,那么就有插件"NextBuildNumber".但这不适用于您的情况,因为您需要的内部版本号(1)小于您当前的内部版本号.
这里需要首先消除所有以前的构建.您可以通过运行这个简单的脚本来执行此操作 转到 - >管理Jenkins - >脚本控制台
// change this variable to match the name of the job whose builds you want to delete
def jobName = "Your Job Name"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
Run Code Online (Sandbox Code Playgroud)
现在,您可以将下一个内部版本号设置为1并运行构建.它将从1开始.:)就这么简单.
更新 - Jenkins现在有一个Purge Job History插件,可以最简单的方式完成.查看页面了解更多详情 - https://wiki.jenkins.io/display/JENKINS/Purge+Job+History+Plugin
一般而言,要将内部版本号重置为N(N不一定是1):
buildNumber >= N。Program Files (x86)/Jenkins/jobs/yourjob/nextBuildNumber。将其包含的数字设置为N。Manage Jenkins -> Reload Configuration from Disk。作为 @antweiss 优秀答案的延伸,我们实际上可以走得更远......
无需删除完整的构建历史记录,如果您不想,您可以简单地将时间回滚到之前的时间点:
resetNumberTarget = 14
item = Jenkins.instance.getItemByFullName("Project Name [from project Dashboard]")
//println(item)
item.builds.each() { build ->
//println(build)
//println(build.number)
if(build.number >= resetNumberTarget)
{
//println("About to Delete '" + build + "'")
build.delete()
}
}
item.updateNextBuildNumber(resetNumberTarget)
Run Code Online (Sandbox Code Playgroud)
如果您想要进行虚拟运行,以检查它将要执行的操作,而无需实际执行,只需注释掉build.delete()和item.updateNextBuildNumber(resetNumberTarget)行并取消注释各种打印命令即可。
扩展已接受的答案,以下是如何同时为所有项目执行此操作:
Jenkins.instance.allItems.each() {
item -> item.builds.each() {
build -> build.delete()
}
item.updateNextBuildNumber(1)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67539 次 |
| 最近记录: |