通过Groovy脚本从多个作业的工件中获取最新的Build Number.逃离詹金斯



我正在尝试编写一个小的groovy脚本,它将从快照工件存储库中给出最新的构建号,并从jenkins运行脚本。我能够成功地获得单个作业的最新构建号

import groovy.json.*
import hudson.model.*
import jenkins.model.Jenkins
  // get current thread / Executor
      def applicationLatestBuild = getLatestBuild('application')
def getLatestBuild( jobName ) {
  def searchUrl = "http://xyz.nbc.com:9090/api/search/artifact?name=${jobName}&repos=libs-snapshot-local"
  def conn = searchUrl.toURL().openConnection()
  conn.setRequestProperty("X-Result-Detail", "info, properties")
  def searchResultTxt = conn.content.text
  //println "Found: ${searchResultTxt}"
  def searchResults = new JsonSlurper().parseText(searchResultTxt)
  def builds = searchResults.results.findAll{it.properties["build.number"] != null}.collect { Integer.parseInt(it.properties["build.number"][0]) }.sort().unique().reverse()
  builds[0]
}
Result is :
Result:   168

我正试图为多个工作做到这一点,但我不能这样做,有人能告诉我如何在数组或多个工作中做到这一点。下面是我的代码,我想写

    import groovy.json.*
    import hudson.model.*
    import jenkins.model.Jenkins
    def PoidonServicesLatestBuild = getLatestBuild('PoidonServices')
    def applicationLatestBuild = getLatestBuild(application)
    def getLatestBuild( jobName ) {
      def searchUrl = "http://xyz.nbc.com:9090/api/search/artifact?name=${jobName}&repos=libs-snapshot-local"
      def conn = searchUrl.toURL().openConnection()
      conn.setRequestProperty("X-Result-Detail", "info, properties")
      def searchResultTxt = conn.content.text
      //println "Found: ${searchResultTxt}"
      def searchResults = new JsonSlurper().parseText(searchResultTxt)
      def builds = searchResults.results.findAll{it.properties["build.number"] != null}.collect { Integer.parseInt(it.properties["build.number"][0]) }.sort().unique().reverse()
      builds[0]
    }
    def pa = new ParametersAction([
      new StringParameterValue("PoidonServicesLatestBuild", "${PoidonServicesLatestBuild}"),
      new StringParameterValue("applicationLatestBuild ", "${ applicationLatestBuild }"),
    ])
// add variable to current job
thr.executable.addAction(pa)

下面的代码工作正常,并为我提供了快照存储库中受尊重的作业的最新构建号。

import groovy.json.*
import hudson.model.*
import jenkins.model.Jenkins
def applicationdataLatestBuild = getLatestBuild('PoidonServices')
def CareDiscoveryProductsLatestBuild = getLatestBuild('application')

def thr= Thread.currentThread().executable
def getLatestBuild( jobName ) {
  def searchUrl = "http://xyz.nbc.com:9090/api/search/artifact?name=${jobName}&repos=libs-snapshot-local"
  def conn = searchUrl.toURL().openConnection()
  conn.setRequestProperty("X-Result-Detail", "info, properties")
  def searchResultTxt = conn.content.text
  //println "Found: ${searchResultTxt}"
  def searchResults = new JsonSlurper().parseText(searchResultTxt)
  def builds = searchResults.results.findAll{it.properties["build.number"] != null}.collect { Integer.parseInt(it.properties["build.number"][0]) }.sort().unique().reverse()
  println "Using ${jobName} build ${builds[0]}"
  builds[0]
}
def pa = new ParametersAction([
new StringParameterValue("PoidonServicesLatestBuild", "${PoidonServicesLatestBuild}"),
  new StringParameterValue("applicationLatestBuild", "${applicationLatestBuild}"),
 ])

// add variable to current job
thr.addAction(pa)

最新更新