2016-12-20 22 views
5

Làm cách nào để gọi các biến môi trường toàn cục trong Jenkinsfile?
Ví dụ, nếu tôi có một biến -Các biến môi trường toàn cầu của Jenkins trong Jenkinsfile

name:credentialsId 
value:xxxx-xxxx-xxxxx-xxxxxxxxx 

Làm thế nào để sử dụng nó trong kịch bản hấp dẫn?

Tôi đã thử ${credentialsId}, nhưng nó không hoạt động. Nó sẽ chỉ cho lỗi:

java.lang.NoSuchMethodError: No such DSL method '$' found among steps [ArtifactoryGradleBuild, ........ 

Trả lời

26

Trong một Jenkinsfile, bạn có "Working with the Environment" mà đề cập đến:

The full list of environment variables accessible from within Jenkins Pipeline is documented at localhost:8080/pipeline-syntax/globals#env,

Cú pháp là ${env.xxx} như trong:

node { 
    echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}" 
} 

Xem thêm " Managing the Environment ".

How can I pass the Global variables to the Jenkinsfile?
When I say Global variables - I mean in

Jenkins -> Manage Jenkins -> Configure System -> Global properties -> Environment variables 

Xem "Setting environment variables"

Setting an environment variable within a Jenkins Pipeline can be done with the withEnv step, which allows overriding specified environment variables for a given block of Pipeline Script, for example:

Jenkinsfile (Pipeline Script)

node { 
    /* .. snip .. */ 
    withEnv(["NAME=value"]) { 
     ... your job 
    } 
} 
-1

cú pháp khác là $ ENV: xxxx

node { 
echo "Running $ENV.BUILD_ID on $ENV.JENKINS_URL" } 

này làm việc cho tôi

+0

nó là bằng cách nào đó tương tự như những gợi ý từ VonC. – dildeepak

+0

Điều này làm việc cho tôi đó là lý do tại sao tôi đề nghị theo cách này mặc dù cả hai đều giống nhau chỉ khác nhau cú pháp –

+0

Nhưng tôi muốn xác định biến môi trường toàn cầu của riêng tôi trong Jenkins thay vì xác định nó trong Jenkinsfile của tôi. – ezlee

0

Khi đề cập đến env trong phạm vi Groovy, chỉ cần sử dụng env.VARIABLE_NAME, ví dụ để vượt qua trên BUILD_NUMBER công việc ngược dòng để một công việc được kích hoạt:

stage ('Starting job') { 
    build job: 'TriggerTest', parameters: [ 
     [$class: 'StringParameterValue', name: 'upstream_build_number', value: env.BUILD_NUMBER] 
    ] 
} 
Các vấn đề liên quan