【发布时间】:2021-12-08 14:43:24
【问题描述】:
我有一个 jenkins 管道,其中有 2 个阶段:
pipelien {
agent {label 'master'}
stages ('stage 1') {
stage {
steps {
sh "python3 script.py" //this script returns value {"status": "ok"}
}
}
stage ('stage 2') {
// Do something with the response JSON from script.py
}
}
}
问题是我做不到。我有什么尝试:
- 将结果传递给环境变量,但由于某种原因 Jenkins 无法识别它。也许我在这里做错了什么?
- 播放 script.py 的解析标准输出不是一个选项,因为此脚本会打印大量日志
剩下的唯一选择是创建一个文件来存储该 JSON,然后在下一步中读取该文件,但这很丑。
有什么想法吗?
【问题讨论】:
-
您可能应该将 Python 脚本重构为 Jenkins Pipeline 原生实现的东西。
-
你的意思是使用 Groovy 吗?不幸的是,这不是一个选项,因为我们在 JVM(特定服务的 SDK)中没有这样的库
-
@Aladin 为什么考虑将结果写入文件然后读取它是一个丑陋的解决方案?这是一种通用方法,可用于多种用途。
-
好吧,我花了一些时间才意识到这可能是我们唯一的“干净”解决方案,因为我们在这里讨论的是不同的流程。
标签: python shell jenkins jenkins-pipeline pipeline