使用Groovy创建Jenkins环境变量
我认为这是另一个简单的问题,但是我无法使用任何Web解决方案。我的项目有一个版本号。每个数字都可以用“。”分隔。或“
_”。我想要一个仅显示前两个数字的变量。
我尝试编写一个普通的脚本来创建Jenkins环境变量。
我想使用前两位数字而不是整个字符串。
//Get the version parameterdef env = System.getenv()
def version = env['currentversion']
def m = version =~/\d{1,2}/
env = ['miniVersion':m[0].m[1]]
我是否正确执行此操作,甚至可以创建一个新的环境变量,并且对此有更好的解决方案吗?
回答:
詹金斯1.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
詹金斯2.x
我相信以前的( )行为由于此安全公告而停止工作…
解决方案(摘自安全公告)
它可以通过设置系统属性来恢复以前的行为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
以上是 使用Groovy创建Jenkins环境变量 的全部内容, 来源链接: utcz.com/qa/427487.html