2016-09-27 1 views
0

Я могу найти последний номер сборки с нижеподробным кодом, но теперь мое требование немного изменилось. В настоящее время я пытаюсь найти последний номер сборки только в локальном репозитории 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) 

ответ

0

Ниже ответ

Вам нужно добавить другие репозитарии здесь, в этой линии, и это даст ваш желаемый Результаты.

Защиту searchUrl = "http://xyz.test.com:9090/api/search/artifact?name= $ {JobName} & РЕПО = LIBS-снимок локального, LIBS-альфа-местный, ЛИЭС стадии локального, LIBS-релиз-местный"

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,libs-alpha-local,libs-stage-local,libs-release-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) 

 Смежные вопросы

  • Нет связанных вопросов^_^