如何使用python脚本设置Jenkins env变量

时间:2014-08-27 14:48:29

标签: python maven jenkins

我有一个jenkins构建过程,我使用python脚本来计算新版本:

import string
import os
print 'Current version is ' + os.environ['POM_VERSION']
versionArr = string.split(os.environ['POM_VERSION'], '.')
versionArr[2] = str(int(versionArr[2]) + 1)
if  int(versionArr[2]) > 100:
    versionArr[2] = '0'
    versionArr[1] = str(int(versionArr[1]) + 1)
if int(versionArr[1]) > 100:
    versionArr[0] = str(int(versionArr[0]) + 1)
    versionArr[1] = '0'
print  versionArr
print 'New version will be: ' + versionArr[0] + '.' + versionArr[1] + '.' + versionArr[2]
os.environ['NEW_POM_VERSION'] =  versionArr[0] + '.' + versionArr[1] + '.' + versionArr[2]

然后我想跑

versions:set -DnewVersion=${NEW_POM_VERSION} -DgenerateBackupPoms=false

另一步。但是${NEW_POM_VERSION}保持不变,并且不会转换为我设置的值。

我试图以错误的方式调用变量。我也试过使用$NEW_POM_VERSION也没有用的

所以我应该如何正确地将变量导出到我的环境中。

感谢。

1 个答案:

答案 0 :(得分:3)

Jenkins为每个构建步骤(以及构建后步骤)生成一个新环境。将值设置为1将不会保留到其余值。

您需要EnvInject plugin

  • 在您的python脚本中,将最终值写入属性文件,格式为param=value
  • 接下来,配置 EnvInject 构建步骤以从该属性文件加载变量。
  • 此时,这些已加载的属性将作为环境变量提供给此作业的所有其他构建步骤/构建后步骤。