python - 将 Python 脚本中的值列表返回到 Jenkins Pipeline

标签 python jenkins jenkins-pipeline

我有一个 jenkins 管道,其中包含以下 3 个阶段(仅描述):

第 1 阶段:调用 python 脚本,该脚本应返回应为其构建新版本的版本号列表

第 2 阶段:调用 Jenkins-Jobs 并行构建第 1 阶段的每个版本号。

第 3 阶段:所有构建作业完成后,使用构建版本执行其他操作。

我遇到的问题是,我不知道如何处理 python 脚本的输出。如何使用从 python 函数返回的列表用于以下阶段?

我通过 bat 命令调用 python 脚本。我看到,可以通过 returnStdout 标志重定向批处理命令的输出,但这只会传递 python 脚本的输出。

我能想到的一种可能性是将列表存储在工作区中的 json 文件中,然后使用管道中的 readJson 将其读回。但也许有一个更优雅的解决方案。

最佳答案

由于您使用的是 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')
            }
        }
    }
}

从这里开始,就需要生成构建步骤并将它们包装在并行 block 中。为此,请看一下这个答案:Ideas to implement dynamic parallel build using jenkins pipeline plugin

关于python - 将 Python 脚本中的值列表返回到 Jenkins Pipeline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47754768/

相关文章:

python - 机器人框架 - pybot 命令输出

jenkins - 在 Jenkins 多分支声明式管道项目之间传递变量

jenkins - "java.io.NotSerializableException: java.io.PrintWriter"写入文件时 - Jenkins 工作流程

Android 支持存储库和持续集成

python - 核心转储 : Extract all the global variables , 核心转储中的数据结构和子结构

Python 3.0.1 可执行创建器

Python Mechanize 设置 cookie

Jenkins:关于build.xml的路径

email - 如何在 Jenkins 声明式管道中发送 "back to normal"通知?

python - 'Collection' object is not callable error in pymongo with process Pool