相关疑难解决方法(0)

在Jenkins构建步骤中从groovy脚本访问构建环境变量(Windows)

我正在使用Scriptler插件,所以我可以运行一个groovy脚本作为构建步骤.我的Jenkins奴隶在服务模式下运行在Windows上.使用scriptler,我不需要使用Windows批处理脚本.

但我很难在构建步骤中获取环境变量...这是有效的:

System.getenv("BASE")
Run Code Online (Sandbox Code Playgroud)

哪里BASE是詹金斯启动将env-瓦尔的一部分.但是,我想得到

%JOB_NAME%
Run Code Online (Sandbox Code Playgroud)

如果我正在添加"执行Windows批处理命令"构建步骤:

echo %JOB_NAME%
Run Code Online (Sandbox Code Playgroud)

有用.如果我使用相同的设置添加脚本编写器脚本作为构建步骤:

println "JOB_NAME: " + System.getenv("JOB_NAME")
Run Code Online (Sandbox Code Playgroud)

我越来越:

JOB_NAME: null
Run Code Online (Sandbox Code Playgroud)

那么如何从groovy脚本中获取注入的环境变量作为构建步骤?

windows groovy environment-variables jenkins

47
推荐指数
6
解决办法
15万
查看次数

Jenkins Pipeline访问环境变量

我正在尝试在Jenkins中使用DSL管道.我认为如果我可以将项目名称作为我脚本的一部分,那就太好了.

git credentialsId: 'ffffffff-ffff-ffff-ffff-ffffffffffffff',\
url: "${repo_root}/${JOB_NAME}.git"
Run Code Online (Sandbox Code Playgroud)

我收到错误:

groovy.lang.MissingPropertyException: \
No such property: JOB_NAME for class: groovy.lang.Binding
Run Code Online (Sandbox Code Playgroud)

我以为我遵循了这些指示,他们提到JOB_NAME了变量之一.

我决定尝试:

sh 'env'
Run Code Online (Sandbox Code Playgroud)

在我的DSL中,打印出来:

JOB_NAME = foo-bar
Run Code Online (Sandbox Code Playgroud)

这是我所期待的.

一篇博客提到:

使用环境变量
我们有两种方法来获取它们的价值.-D=在启动期间传递的属性我们可以阅读,System.getProperty("key")这要归功于Groovy与Java的强大关系.

用Java方式读取常规环境变量是System.getenv("VARIABLE")......

我们试试这个:

println "JOB_NAME = " + System.getenv('JOB_NAME'); 
Run Code Online (Sandbox Code Playgroud)

现在,我得到:

java.lang.NullPointerException: Cannot get property 'System' on null object
Run Code Online (Sandbox Code Playgroud)

空物体?但是,我可以看到这JOB_NAME是一个环境变量!

如何$JOB_NAME在Pipeline作业中读入DSL脚本.我正在尝试一个管道工作,当我得到它的工作将使这个多分支管道与Jenkinsfile.

jenkins jenkins-workflow jenkins-pipeline

29
推荐指数
3
解决办法
7万
查看次数

如何在Jenkins Groovy脚本控制台中获取环境变量?

在"全局属性"中的Jenkins配置(http:// JenkinsURL/configure)中,我定义了一些"环境变量".

如何在Groovy Script控制台(http:// JenkinsURL/script)中访问它们?

我试图找到合适的解决方案(例如,在Jenkins构建步骤(Windows)中从Groovy脚本中访问构建环境变量的解决方案)但似乎它们都不适用于我.

我试过例如:

System.getenv("myVar")
Run Code Online (Sandbox Code Playgroud)

manager.build.getEnvironment(listener).get('myVar') //no manager error
Run Code Online (Sandbox Code Playgroud)

import jenkins.model.Jenkins
Jenkins.instance.getProperty('myVar') //No signature of method: hudson.model.Hudson.getProperty() is applicable for argument types: (java.lang.String)
Run Code Online (Sandbox Code Playgroud)

import jenkins.model.Jenkins
Jenkins.instance.ParameterValue("DEV_local")
Run Code Online (Sandbox Code Playgroud)

groovy jenkins

10
推荐指数
2
解决办法
2万
查看次数