Return Jenkins 管道中 python 脚本的结果

Return result of python script in Jenkins pipeline

我有一个 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
    }
  }
}

问题是我做不到。我尝试过的:

  1. 将结果传递给环境变量,但由于某种原因Jenkins 没有识别它。也许我在这里做错了什么?
  2. 播放 script.py 的解析标准输出不是一个选项,因为此脚本会打印大量日志

剩下的唯一选择是创建一个文件来存储 JSON 然后在下一步中读取该文件,但它很难看。

有什么想法吗?

最后我们选择创建文件并将消息存储在那里。 我们将文件名作为参数传递给 python 脚本并记录所有内容。 然后我们在作业成功后删除所有工作区。