Jenkins 脚本命令行应用小结

 更新时间:2022年04月06日 08:46:46   作者:授客  
这篇文章主要介绍了Jenkins 脚本命令行应用总结,包括批量删除Jenkins 项目构建记录,非多分支项目及分支项目,文章结合示例代码给大家介绍的非常详细,需要的朋友可以参考下

Jenkins脚本命令行应用总结

测试环境

Jenkins 2.304

脚本命令行入口

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

遍历项目

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

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

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

}

批量删除Jenkins 项目构建记录

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

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的构建记录

def projectName = "FREE-STYLE-PROJECT" // 项目名称
def project = Jenkins.instance.getItem(projectName)
project.getBuilds().findAll { it.number > 10 }.each { it.delete() } 

非多分支项目

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

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的所有构建记录

def jobName = "CI-Builder/omg"
def job = Jenkins.instance.getItemByFullName(jobName) 
job.getBuilds().each { it.delete() }

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

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()
}

到此这篇关于Jenkins 脚本命令行应用总结的文章就介绍到这了,更多相关Jenkins 脚本命令行应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • npm script 的文件监听和自动刷新的命令详解

    npm script 的文件监听和自动刷新的命令详解

    文件监听的作用是为了实现自动化,释放双手和精力,提高效率,让开发者更加关注于开发。这篇文章主要介绍了npm script 的文件监听和自动刷新,需要的朋友可以参考下
    2019-06-06
  • 值得推荐的Idea十几大优秀插件(小结)

    值得推荐的Idea十几大优秀插件(小结)

    这篇文章主要介绍了值得推荐的Idea十几大优秀插件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-04-04
  • 永恒之蓝实战教程之Mac通过Metasploit攻击Server2008的详细过程

    永恒之蓝实战教程之Mac通过Metasploit攻击Server2008的详细过程

    这篇文章主要介绍了永恒之蓝实战教程 Mac通过Metasploit攻击Server2008,首先准备一个Server2008,主要功能是使网络上的机器能够共享计算机文件、打印机、串行端口和通讯等资源,需要的朋友可以参考下
    2022-08-08
  • IDEA配置以及插件和快捷键超全总结

    IDEA配置以及插件和快捷键超全总结

    这篇文章主要给大家介绍了关于IDEA配置以及插件和快捷键的相关资料,学习软件工程的同学基本上都要用到idea,并且它也是目前比较主流的开发工具,需要的朋友可以参考下
    2023-07-07
  • 简单谈谈GET和POST有什么区别

    简单谈谈GET和POST有什么区别

    本文给大家总结了下get与post的具体区别,以及网上的那么多答案为什么都是错误的,非常的实用,这里推荐给大家
    2016-06-06
  • sublime text 添加到鼠标右键功能

    sublime text 添加到鼠标右键功能

    这篇文章主要介绍了sublime text 添加到鼠标右键功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Git本地仓库基本操作及技巧

    Git本地仓库基本操作及技巧

    这篇文章主要介绍了Git本地仓库基本操作及一些小技巧,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 如何给 GitHub commit 加个绿色图标(教程详解)

    如何给 GitHub commit 加个绿色图标(教程详解)

    这篇文章主要介绍了如何给 GitHub commit 加个绿色图标,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 实例详解esp8266解析json数据的方法

    实例详解esp8266解析json数据的方法

    这篇文章主要介绍了实例详解esp8266解析json数据的方法,主要包括要解析的json文件,反序列化数据获取到对象中,通过串口监视器输出解析后的数据信息,需要的朋友可以参考下
    2022-03-03
  • 怎样删除Git中缓存的用户名和密码

    怎样删除Git中缓存的用户名和密码

    这篇文章主要介绍了怎样删除Git中缓存的用户名和密码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05

最新评论