Я могу найти последний номер сборки с нижеподробным кодом, но теперь мое требование немного изменилось. В настоящее время я пытаюсь найти последний номер сборки только в локальном репозитории libs-snaphot-local artifactory, но теперь я хочу найти последний номер сборки в трех хранилищах для одного и того же имени задания, а не только для libs-snapshot-localНайдите последний номер сборки во всем определенном артефактивном хранилище для задания
Три дополнительных репозитория: libs-alpha-local, libs-stage-local и libs-release-local. Таким образом, код должен быть таким, что он будет искать последний номер сборки во всех четырех архитекторных репозиториях, например.
libs-snapshot-local is having build number 3,2
libs-alpha-local is having build number 8,4
libs-stage-local is having build number 5,6
libs-release-local is having build number 9,1
so the latest build number would be 9
Ниже приведен код, который ищет только в одном хранилище
import groovy.json.*
import hudson.model.*
import jenkins.model.Jenkins
def applicationLatestBuild = getLatestBuild('application')
def DiscoveryProductsLatestBuild = getLatestBuild('DiscoveryProduct')
//String[] testArray = ["libs-snapshot-local", "libs-alpha-local", "libs-stage-local", "libs-release-local"]
def thr= Thread.currentThread().executable
def getLatestBuild(jobName) {
def searchUrl = "http://xyz.test.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("applicationLatestBuild", "${applicationLatestBuild}"),
new StringParameterValue("DiscoveryProductsLatestBuild", "${DiscoveryProductsLatestBuild}"),
])
// add variable to current job
thr.addAction(pa)
println (applicationLatestBuild)
println(DiscoveryProductsLatestBuild)