我如何在 Jenkins 的 Windows 批处理命令中设置和获取环境变量?

问题描述

图片中,您可以看到我正在通过 curl 调用 API。此 API 返回字符串数据。我需要将此响应存储在 Jenkins env 变量中并访问第二张图片中的 env 变量。我已经尝试设置变量,如您所见,但它不是这样做的方法

enter image description here

enter image description here

如何在 Jenkins 中设置和获取环境变量?

解决方法

您需要定义一个 parameterized build,将 VERSION 作为参数。

https://www.baeldung.com/wp-content/uploads/2020/10/jenkins-parameterized-builds-enable-checkbox.jpg


或者,替代选项,您可以使用 Environment Injector 来:

  • 在 SCM 结帐后注入变量
    https://cdn.jsdelivr.net/gh/jenkinsci/envinject-plugin@master/docs/images/f6ac7022302083d1e8359babf478bacc1c70f926.png

  • 注入变量作为构建步骤
    https://cdn.jsdelivr.net/gh/jenkinsci/envinject-plugin@master/docs/images/0e0feead5d341176a406f68395e6f9df8b09a390.png

第二个选项允许你在你的工作中拥有一个静态值(总是相同的构建形式)。

这两个选项都允许您在 Windows shell (bat) 脚本步骤中引用 %VERSION%


关于一步设置变量,首先尝试测试它,使用set

set VERSION="xxx"

第二步:

echo VERSION is '%VERSION%'

它不应该工作,因为 explained here,每个步骤都有自己的环境。

在这种情况下,第一步应该将值写入文件,第二步应该读取该文件。