gpt4 book ai didi

java - 通过Groovy脚本从 Artifactory 获取用于多个作业的最新内部版本号。

转载 作者:行者123 更新时间:2023-12-03 06:04:24 25 4
gpt4 key购买 nike

我正在尝试编写一个小的Groovy脚本,该脚本将提供快照 Artifact 存储库中的最新内部版本号,并从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)

关于java - 通过Groovy脚本从 Artifactory 获取用于多个作业的最新内部版本号。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com