日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Jenkins?腳本命令行應(yīng)用小結(jié)_相關(guān)技巧

作者:授客 ? 更新時(shí)間: 2022-06-07 編程語(yǔ)言

Jenkins腳本命令行應(yīng)用總結(jié)

測(cè)試環(huán)境

Jenkins 2.304

腳本命令行入口

Jenkins主頁(yè)→系統(tǒng)管理→腳本命令行

遍歷項(xiàng)目

例子:獲取所有自由風(fēng)格項(xiàng)目及相關(guān)項(xiàng)目信息

def projects = Jenkins.instance.projects.collect { it } // 獲取自由風(fēng)格的所有項(xiàng)目,注意,只能獲取自由風(fēng)格項(xiàng)目
println(projects) // 輸出:[hudson.model.FreeStyleProject@4b8b02d[AutoTest-OMG], hudson.model.FreeStyleProject@2b953627[AutoTest-QDD],...,]
for(def project : projects) { 
  println(project.name)  // 獲取項(xiàng)目名稱 
  println(project.getBuilds()) // 獲取構(gòu)建記錄,輸出:[AutoTest-OMG #190, AutoTest-OMG #189, ...,]
  println(job.nextBuildNumber) // 獲取下一次構(gòu)建號(hào),形如:256
}

遍歷Job

def jobNames = Jenkins.instance.getJobNames()
for (def jobName : jobNames) {
  println(jobName) // 注意:如果是多分支項(xiàng)目,則輸出名稱為fullName,形如:alpha-Deployer/vip

}

批量刪除Jenkins 項(xiàng)目構(gòu)建記錄

例子:刪除所有Job最后5次構(gòu)建之前的所有歷史構(gòu)建記錄,即僅保留最近5次構(gòu)建記錄

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項(xiàng)目構(gòu)建號(hào)大于10的構(gòu)建記錄

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

非多分支項(xiàng)目

例子:刪除FREE-STYLE-PROJECT項(xiàng)目的所有構(gòu)建記錄

def jobName = "FREE-STYLE-PROJECT" // 項(xiàng)目名稱
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() } // 刪除所有構(gòu)建記錄

多分支項(xiàng)目

例子:刪除CI-Builder項(xiàng)目,omg job的所有構(gòu)建記錄

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

例子:刪除CI-Builder項(xiàng)目,所有job的所有構(gòu)建記錄,并重置每個(gè)job的下次構(gòu)建號(hào)為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()
}

原文鏈接:https://www.cnblogs.com/shouke/p/16104285.html

欄目分類
最近更新