如何在Jenkins中将变量从管道传递到作业?
我需要在管道中创建一个唯一标识符,然后从该管道启动的所有作业都应该可以访问该唯一标识符。 我不想参数化这些作业 我认为在管道级别定义的环境变量可以从作业中访问,但事实并非如此如何在Jenkins中将变量从管道传递到作业?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我需要在管道中创建一个唯一标识符,然后从该管道启动的所有作业都应该可以访问该唯一标识符。 我不想参数化这些作业 我认为在管道级别定义的环境变量可以从作业中访问,但事实并非如此 pipeline { agent any environment { TEST_VAR = 'TEST_VAR' } stages { stage('Stage1') { steps { build (job: 'job1')
pipeline {
agent any
environment {
TEST_VAR = 'TEST_VAR'
}
stages {
stage('Stage1') {
steps {
build (job: 'job1')
}
}
}
}
您应该尝试在测试变量之前添加“$”:
environment {
TEST_VAR = '$TEST_VAR'
}
您实际上不需要参数化下游管道,但仍然可以将变量作为参数从上游传递,并在下游访问它 上游管道 下游管道 下游管道控制台输出
如果环境变量没有传播到下游作业,并且您不想参数化这些作业,那么您可能会被卡住。如果此管道作业仅调用下游作业,那么首先可能不需要此作业。
pipeline {
agent any
environment {
TEST_VAR = 'hello_world'
}
stages {
stage('Build-downstream-job') {
steps {
build job: 'downstream-job', parameters: [string(name: 'TEST_VAR', value: env.TEST_VAR)], wait: false
}
}
}
}
pipeline {
agent any
stages {
stage('Get-test-var') {
steps {
println(params.TEST_VAR)
}
}
}
}
[Pipeline] stage
[Pipeline] { (Get-test-var)
[Pipeline] echo
hello_world
[Pipeline] }
[Pipeline] // stage