延迟Jenkins EnvInject中的参数变量扩展

时间:2014-03-18 21:03:42

标签: parameters jenkins environment-variables

我正在尝试延迟Jenkins参数中的变量扩展,直到参数使用。例如:

我有一个作业参数“EMAIL_SUBJECT”,它可能包含对整个构建中会发生变化的变量的引用。 EG:“我的$ GIT_HASH的构建”。 “GIT_HASH”的值可能会在整个构建过程中发生变化。

在旧版本的EnvInject中,每次使用EMAIL_SUBJECT时,它都会引用GIT_HASH的最新值。像这样:

  1. 使用参数EMAIL_SUBJECT =“我的$ GIT_HASH构建”开始构建
  2. 做一些工作并设置GIT_HASH = A
  3. EMAIL_SUBJECT是“我的 A ”的构建
  4. 做一些工作并设置GIT_HASH = B
  5. EMAIL_SUBJECT是“我的 B的构建
  6. 然而,在较新版本的EnvInject(1.77+)中,EMAIL_SUBJECT会被评估一次,永远不会更新。所以上面变成了:

    1. 使用参数EMAIL_SUBJECT =“我的$ GIT_HASH构建”开始构建
    2. 做一些工作并设置GIT_HASH = A
    3. EMAIL_SUBJECT是“我的 A ”的构建
    4. 做一些工作并设置GIT_HASH = B
    5. EMAIL_SUBJECT是“我的 A
    6. 我已经尝试使用参数中的反斜杠转义变量,但是EnvInject也不喜欢这样,并且逃脱了我的转义,所以结果最终只是一个字符串只有“\”继续该值。     EMAIL_SUBJECT =我的\ $ GIT_HASH版本 结束输出:     我的构建\ A

      我的问题:有没有办法阻止EnvInject覆盖参数?或者任何环境变量?

0 个答案:

没有答案