从Python脚本返回值列表到Jenkins Pipeline

2ledvvac  于 12个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(123)

我有一个Jenkins管道,它包含以下3个阶段(只是描述):

**第一阶段:**调用python脚本,返回一个新版本的版本号列表
**阶段2:**调用Jenkins-Jobs,它并行地为阶段1的每个版本号进行构建。
**阶段3:**在所有构建的作业完成后,使用构建的版本做其他事情。

我遇到的问题是,我不知道如何处理python脚本的输出。我如何使用一个列表,这是从python函数返回的,用于以下阶段?
我通过bat命令调用python脚本。我看到,有可能通过returnStdout标志重定向批处理命令的输出,但这只传递python脚本的输出。
我能想到的一个可能性是将列表存储在工作区的json文件中,然后在管道中用readJson将其读回,但也许有一个更优雅的解决方案。

ego6inou

ego6inou1#

由于您使用的是Pipeline DSL,因此可以使用Groovy处理对bat的调用结果

pipeline {
    agent any
    steps {
        step('Get Build Numbers') {
            script {
                def version_numbers = bat(script: 'python get_version_numbers.py', returnStdout: true)
                def versions_as_array = version_numbers.split('\n')
            }
        }
    }
}

字符串
从那里开始,问题是生成构建步骤并将它们 Package 在一个并行块中。

相关问题