詹金斯版本:2.6,Linux
问题:参数化的构建变量在执行步骤“shell脚本”中不可见(作为环境变量),它们曾经在旧的 1.x jenkins 版本中可见。
脚步:
- 使用多配置项目创建参数化构建。
- 向构建添加一个参数(使用 This project is parameterized-> string parameter, {if that questions} )。
- 将构建步骤“执行 shell”添加到作业。
将此 shell 脚本中的这些参数作为环境变量访问。
echo "++++++++++++ 构建 $lib_name ($lib_version) ++++++++++++++"
为了解决这个问题,我尝试在“为运行准备环境”部分创建一个 groovy 脚本。我使用硬编码值创建了环境变量,这些值作为环境变量传递给 shell 脚本。
def map = ['lib_name':'lib1']
map['lib_version'] = 'master'
return map
但是,如果没有硬编码,即使使用 如何使用 Groovy API 检索 Jenkins 构建参数的解决方案,我也无法访问这些变量值?
我不知道还需要做什么。有人可以建议吗?
--->根据对此问题的评论进行更新:当我在jenkins中运行以下行时,出现异常:
def buildVariablesMap = Thread.currentThread().executable.buildVariables
buildVariablesMap.each{ k, v -> println "${k}:${v}" }
FATAL: No such property: executable for class: hudson.model.OneOffExecutor
groovy.lang.MissingPropertyException: No such property: executable for class: hudson.model.OneOffExecutor
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53)
at org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite.java:66)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)