加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用Groovy创建一个Jenkins环境变量

发布时间:2020-12-14 16:38:41 所属栏目:大数据 来源:网络整理
导读:我认为这是另一个简单的问题,但我无法获得任何Web解决方案。我的项目需要一个版本号。每个数字都可以被’。’分隔。或“_”。我想要一个只显示前两个数字的变量。 我试着编写一个创建Jenkins环境变量的groovy脚本。 我想采取前两位数,而不是整个字符串。 /
我认为这是另一个简单的问题,但我无法获得任何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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读