前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins 脚本命令行应用总结

Jenkins 脚本命令行应用总结

作者头像
授客
发布2022-05-06 15:52:12
8240
发布2022-05-06 15:52:12
举报
文章被收录于专栏:授客的专栏授客的专栏

Jenkins脚本命令行应用总结

测试环境

Jenkins 2.304

脚本命令行入口

Jenkins主页→系统管理→脚本命令行

遍历项目

例子:获取所有自由风格项目及相关项目信息

代码语言:javascript
复制
def projects = Jenkins.instance.projects.collect { it } // 获取自由风格的所有项目,注意,只能获取自由风格项目
println(projects) // 输出:[hudson.model.FreeStyleProject@4b8b02d[AutoTest-OMG], hudson.model.FreeStyleProject@2b953627[AutoTest-QDD],...,]
for(def project : projects) { 
  println(project.name)  // 获取项目名称 
  println(project.getBuilds()) // 获取构建记录,输出:[AutoTest-OMG #190, AutoTest-OMG #189, ...,]
  println(job.nextBuildNumber) // 获取下一次构建号,形如:256
}

遍历Job

代码语言:javascript
复制
def jobNames = Jenkins.instance.getJobNames()
for (def jobName : jobNames) {
  println(jobName) // 注意:如果是多分支项目,则输出名称为fullName,形如:alpha-Deployer/vip

}

批量删除Jenkins 项目构建记录

例子:删除所有Job最后5次构建之前的所有历史构建记录,即仅保留最近5次构建记录

代码语言:javascript
复制
def jobNames = Jenkins.instance.getJobNames()
for (def jobName : jobNames) {
    def job = Jenkins.instance.getItemByFullName(jobName)
    job.getBuilds().findAll { it.number < job.nextBuildNumber - 5 }.each { it.delete() } 
}

例子:删除FREE-STYLE-PROJECT项目构建号大于10的构建记录

代码语言:javascript
复制
def projectName = "FREE-STYLE-PROJECT" // 项目名称
def project = Jenkins.instance.getItem(projectName)
project.getBuilds().findAll { it.number > 10 }.each { it.delete() } 

非多分支项目

例子:删除FREE-STYLE-PROJECT项目的所有构建记录

代码语言:javascript
复制
def jobName = "FREE-STYLE-PROJECT" // 项目名称
def job = Jenkins.instance.getItem(jobName) // 本行代码也可以使用 def job = Jenkins.instance.getItemByFullName(jobName) 替代

println(job.getClass()) // 输出:org.jenkinsci.plugins.workflow.job.WorkflowJob
println(job.getBuilds().getClass()) // 输出:class hudson.util.RunList
job.getBuilds().each { println(it.getClass()) } // 输出:class org.jenkinsci.plugins.workflow.job.WorkflowRun

job.getBuilds().each { it.delete() } // 删除所有构建记录

多分支项目

例子:删除CI-Builder项目,omg job的所有构建记录

代码语言:javascript
复制
def jobName = "CI-Builder/omg"
def job = Jenkins.instance.getItemByFullName(jobName) 
job.getBuilds().each { it.delete() }

例子:删除CI-Builder项目,所有job的所有构建记录,并重置每个job的下次构建号为1

代码语言:javascript
复制
def projectName = "CI-Builder"
def project = Jenkins.instance.getItem(projectName) 

def jobs = project.getItems().each {
  def job = it
  job.getBuilds().each { 
    it.delete() 
  }
  job.nextBuildNumber = 1
  job.save()
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins脚本命令行应用总结
    • 测试环境
      • 脚本命令行入口
        • 遍历项目
          • 遍历Job
            • 批量删除Jenkins 项目构建记录
              • 非多分支项目
              • 多分支项目
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档