gpt4 book ai didi

shell - Groovy Init 中的 Jenkins 环境变量

转载 作者:行者123 更新时间:2023-12-04 14:55:11 27 4
gpt4 key购买 nike

我正在构建 Jenkins 的 Docker 镜像,并将 ENV 变量传递给 jenkins.sh初始化文件:

Dockerfile

...

COPY ./jenkins.sh /usr/local/bin/jenkins.sh

jenkins.sh
echo ENV: "$ENV"
echo CLUSTER: "$CLUSTER"
echo REGION: "$REGION"

当我运行图像时,这些值完美地打印出来,但我想在 Jenkins 初始化期间在 Groovy 脚本中使用它们。

以下在启动期间引发错误:
import java.util.Arrays
import java.util.logging.Logger
Logger logger = Logger.getLogger("ecs-cluster")

logger.info("Loading Archeus-Midwayer...")
import jenkins.model.*
instance = Jenkins.getInstance()

def env = System.getenv()
println(env['CLUSTER'])

错误

WARNING: Failed to run script file:/var/jenkins_home/init.groovy.d/init_ecs.groovy groovy.lang.MissingPropertyException: No such property: CLUSTER for class: init_ecs at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:53) at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:52) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)



如何捕获 jenkins.sh 中存在的环境变量?

谢谢!

最佳答案

检查环境变量:

def env = System.getenv()
env.each {
println it
}

Export jenkins.sh 中的环境变量.

另见 Access to build environment variables from a groovy script in a Jenkins build step ( Windows) .

关于shell - Groovy Init 中的 Jenkins 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875496/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com