使用Groovy创建一个Jenkins环境变量
我认为这是另一个简单的问题,但我无法获得任何Web解决方案。我的项目需要一个版本号。每个数字都可以被’。’分隔。或“_”。我想要一个只显示前两个数字的变量。
我试着编写一个创建Jenkins环境变量的groovy脚本。 //Get the version parameter def env = System.getenv() def version = env['currentversion'] def m = version =~/d{1,2}/ env = ['miniVersion':m[0].m[1]] 我是否正确地做到这一点,甚至可以创建一个新的环境变量,并且有更好的解决方案。 解决方法
jenkins1.x
以下groovy片段应该通过版本(如您已经提供的),并将其存储在作业的变量“miniVersion”中。 import hudson.model.* def env = System.getenv() def version = env['currentversion'] def m = version =~/d{1,2}/ def minVerVal = m[0]+"."+m[1] def pa = new ParametersAction([ new StringParameterValue("miniVersion",minVerVal) ]) // add variable to current job Thread.currentThread().executable.addAction(pa) 然后可以从其他构建步骤访问该变量。例如 echo miniVersion=%miniVersion% 输出: miniVersion=12.34 我相信你将需要使用“系统Groovy脚本”(仅在主节点上),而不是“Groovy插件” – https://wiki.jenkins-ci.org/display/JENKINS/Groovy+plugin#Groovyplugin-GroovyScriptvsSystemGroovyScript jenkins2.x 我相信以前(jenkins1.x)的行为停止工作,因为this Security Advisory … 解决方案(来自安全顾问) 通过将系统属性hudson.model.ParametersAction.keepUndefinedParameters设置为true可以恢复以前的行为。这可能非常不安全,仅作为短期解决方案。 java -Dhudson.model.ParametersAction.keepUndefinedParameters=true -jar jenkins.war 要允许将特定的已知安全参数名称传递给构建,请将系统属性hudson.model.ParametersAction.safeParameters设置为逗号分隔的安全参数名称列表。 例如 java -Dhudson.model.ParametersAction.safeParameters=miniVersion,FOO,BAR -jar jenkins.war (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |