使用Groovy创建Jenkins环境变量

我认为这是另一个简单的问题,但是我无法使用任何Web解决方案。我的项目有一个版本号。每个数字都可以用“。”分隔。或“

_”。我想要一个仅显示前两个数字的变量。

我尝试编写一个普通的脚本来创建Jenkins环境变量。

我想使用前两位数字而不是整个字符串。

//Get the version parameter

def 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.keepUndefinedParameterstrue

,仅作为短期解决方法。

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

回到顶部