是否可以在构建步骤中定义一个新的构建参数/ENV 变量,以便在下一个步骤中可用?
假设我有 2 个不同的“执行 shell”步骤,并希望在第二步中访问第一个中定义的变量。
PS:变量的值是在运行时设置的 - 从第 3 方资源中读取,所以我无法对其进行硬编码,因此需要从 shell 脚本中设置它。
是否可以在构建步骤中定义一个新的构建参数/ENV 变量,以便在下一个步骤中可用?
假设我有 2 个不同的“执行 shell”步骤,并希望在第二步中访问第一个中定义的变量。
PS:变量的值是在运行时设置的 - 从第 3 方资源中读取,所以我无法对其进行硬编码,因此需要从 shell 脚本中设置它。
插件EnvInject将为您做到这一点。它可以配置为pre-SCM
步骤或build
步骤。将它放在您现有的两个构建步骤之间。
更新
在您的情况下,作为第二个构建步骤的一部分,仅读取“第 3 方”文件的值可能更容易:
var=$(<3rdpartyfile.txt)
在上述行之后,您的内容3rdpartyfile.txt
将在环境变量中可用var
。您现在可以$var
像使用任何其他变量一样使用
你也可以使用类似的东西
stage('stage-1') {
steps {
script{
env.variable = ${value};
}
}
}
现在您可以在整个管道中使用变量 env.variable