有几个步骤可以实现这一目标。首先,我们需要修复 shell 方法的执行。我们将其转换为有效的 shell 执行,该执行返回执行的标准并将其分配给一个变量:
build_json = sh(label: 'Retrieve Build Info', script: "curl ${APP_ARTIFACTORY_URL}/${XRAY_PLATFORM}/builds/latest.json", returnStdout: true)
这是一个有效的 shell 方法执行,它还将返回标准输出并将其分配给变量。请参阅文档 https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#sh-shell-script了解更多信息。
接下来,我们需要解析生成的 JSON,并将该返回值分配给一个变量:
build_map = readJSON(text: build_json)
See the 文档 https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#readjson-read-json-from-files-in-the-workspace了解更多信息。
最后,我们现在有了一个 Map,我们可以在其中访问latest_version
key 并将其分配给一个变量。我们可以使用以下语法进行访问:
latest_version = build_map['version']
or this:
latest_version = build_map.version
请注意,虽然这确实回答了您的问题,但您不能将动态值传递给environment
在管道执行期间阻塞(您的问题意味着您想稍后执行)。因此,您将需要尝试不同的路线,并且可能需要询问有关它的后续问题。