我想从成功的最后一个稳定构建jenkins作业中检索自定义变量。我能够使用Execute Shell在此链接上使用curl检索内部版本号。这是一个内部服务器。 https://jenkinsci.internalsvr/view/webapps/job/common-tools/lastStableBuild/buildNumber
现在,我想使用curl对自定义变量执行相同的操作。但我知道我可能需要保存自定义变量的值,但不确定如何以及在哪里。
答案 0 :(得分:1)
所以这就是我开始工作的方式
我在dsl.groovy文件中有这段代码
....
parameters {
stringParam('CUSTOM_VAR1', '', 'Custom Variable')
stringParam('CUSTOM_VAR2', '', 'Custom Variable')
}
shellCommands = sprintf('''#/bin/bash
echo "CUSTOM_VAR1=\${%s}" > env.properties
echo "CUSTOM_VAR2=\${%s}" >> env.properties
''', ['CUSTOM_VARIABLE1','CUSTOM_VARIABLE1'])
shell(shellCommands)
// This is extremely important
environmentVariables {
propertiesFile('env.properties')
}
// This allowed me to retrieve env.properties via http call from browser or curl.
publishers {
archiveArtifacts {
pattern('env.properties')
}
}
因此,如果我需要访问它,http url应该像这样形成
curl https://our-internal-server/job/theNameOfTheJob/lastStableBuild/artifact/env.properties
答案 1 :(得分:0)
您可以使用EnvInject plugin的API来做到这一点,
curl <jenkins-host>/job/<job_name>/<buildNumber>/injectedEnvVars/export
curl <jenkins-host>/job/<job_name>/<buildNumber>/injectedEnvVars/api/python
更多信息here。