詹金斯全局环境变量在Jenkinsfile中

ezl*_*lee 19 groovy jenkins jenkins-pipeline

如何在Jenkinsfile中调用全局环境变量?
例如,如果我有一个变量 -

 name:credentialsId 
 value:xxxx-xxxx-xxxxx-xxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

如何在groovy脚本中使用它?

我试过了${credentialsId},但没办法.它只会给出错误:

java.lang.NoSuchMethodError: No such DSL method '$' found among steps [ArtifactoryGradleBuild, ........
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 39

在Jenkins文件中,您有" 使用环境 ",其中提到:

可从Jenkins管道中访问的环境变量的完整列表记录在localhost:8080/pipeline-syntax/globals#env中,

语法${env.xxx}如下:

node {
    echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
}
Run Code Online (Sandbox Code Playgroud)

另请参阅" 管理环境 ".

如何将全局变量传递给Jenkinsfile?
当我说全局变量 - 我的意思是

Jenkins -> Manage Jenkins -> Configure System -> Global properties -> Environment variables
Run Code Online (Sandbox Code Playgroud)

请参阅" 设置环境变量 "

在Jenkins管道中设置环境变量可以通过withEnv步骤完成,该步骤允许覆盖给定的管道脚本块的指定环境变量,例如:

Jenkinsfile(管道脚本)

node {
    /* .. snip .. */
    withEnv(["NAME=value"]) {
        ... your job
    }
}
Run Code Online (Sandbox Code Playgroud)