gpt4 book ai didi

jenkins - 在 jenkins 工作流的并行构建中获取失败构建的构建号

转载 作者:行者123 更新时间:2023-12-05 01:20:01 27 4
gpt4 key购买 nike

我正在从我的工作中执行 3 个并行作业,每个都运行测试:

def run_job(job) {
output = build(job:job, parameters:parameters)
def buildNumber = output.getNumber().toString()
test_results[job] = '/job/'+ job +'/' + buildNumber + '/artifact/test_result.xml'

}


def test_func_array = [:]
def test_results = [:]

test_func_array['Python_Tests'] = {run_job('Run_Python_Tests', test_results)}

test_func_array['JS_Tests'] = {run_job('Run_JS_Tests', test_results)}

test_func_array['Selenium_Tests'] = {run_job('Run_Selenium_Tests', test_results)}

parallel(test_func_array)

当每个作业成功时,我可以使用 output.getNumber() 调用获取内部版本号。但是,当作业失败时,build() 函数调用会抛出异常,因此我无法获取内部版本号。

但是,失败的构建仍然可以有构建号和存档的工件。如何获取失败构建的构建号?

最佳答案

如果你使用propagate: false,你不能使用try-catch block ,因为build job在任务失败时不会抛出异常,所以你需要处理getResult() 方法的结果如下:

stage('build something'){
def job_info = build job: build_something, propagate: false,
println "Build number: ${job_info.getNumber()}"
currentBuild.result = job_info.getResult()
}

另请参阅:https://jenkins.io/doc/pipeline/steps/pipeline-build-step/

关于jenkins - 在 jenkins 工作流的并行构建中获取失败构建的构建号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35935477/

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