覆盖在Jenkins

时间:2016-06-28 13:09:05

标签: jenkins environment-variables

我有2个属性文件,我希望通过邮件发送它们的内容。我的所作所为:

  1. 使用EnvInject
  2. 阅读这些文件

    enter image description here

    1. 使用这些变量来发送通过邮件: enter image description here
    2. 这些配置文件包含我在电子邮件中看到的相同输出的不同链接和日期:

      Android Mobile Client Release Notes CH
      
      Link: ftp://testlink_CH
      Date: 28/06/2016
      
      Android Mobile Client Release Notes PL
      
      Link: ftp://testlink_CH
      Date: 28/06/2016
      

      Whitch表示,即使我尝试“unset”命令,$ {Link}被设置为不是oveeriden。

      [EnvInject] - Injecting environment variables from a build step.
      [EnvInject] - Injecting as environment variables the properties file path 'AndroidDev/CH/config.properties'
      [EnvInject] - Variables injected successfully.
      [EnvInject] - Injecting as environment variables the properties content 
      LINK_CH=${Link}
      DATE_CH=${Date}
      
      [EnvInject] - Variables injected successfully.
      [mvandroid] $ /bin/sh -xe /tmp/hudson108948632979693109.sh
      + unset Link
      + unset Date
      [EnvInject] - Injecting environment variables from a build step.
      [EnvInject] - Injecting as environment variables the properties file path 'AndroidDev/PL/config.properties'
      [EnvInject] - Variables injected successfully.
      [EnvInject] - Injecting as environment variables the properties content 
      LINK_PL=ftp://testlink_CH
      DATE_PL=28/06/2016
      

      你可以帮我解决这个问题,还是让你煽动这个?

1 个答案:

答案 0 :(得分:2)

发生这种情况的原因在于env-inject插件的工作方式。如果在一次调用中同时使用“属性文件路径”“属性内容”字段,则不会按顺序处理它们,而是并行处理它们。因此,当您设置$LinkPL时,$Link的值仍旧。解决方案是制作两个env-inject步骤,一个用于注入props文件,另一个用于使用结果。

示例:

enter image description here

输出:

enter image description here

此外,您无法在尝试执行此操作的步骤中取消设置变量值。取消设置只会影响该shell步骤。