roa*_*fer 6 jenkins jenkins-pipeline
根据Jenkins的文档,这是为声明性管道设置全局环境变量的方式:
pipeline {
agent {
label 'my-label'
}
environment {
value = 'World'
}
stages {
stage("Test") {
steps {
sh 'echo Hello, ${value}'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
预期的输出是“ Hello,World”。
在脚本化管道中执行此操作的正确方法是什么?以下内容不会出错,但是它不起作用:
node('my-label') {
environment {
value = 'World'
}
stage("Test") {
sh 'echo Hello, ${value}'
}
}
Run Code Online (Sandbox Code Playgroud)
输出为“ Hello”。那不是预期的。
sol*_*ola 21
在脚本化管道(以及声明式管道的脚本部分)中,您可以直接通过“env”全局对象设置环境变量。
node {
env.MY_VAR = 'my-value1'
}
Run Code Online (Sandbox Code Playgroud)
您还可以像这样动态设置变量:
node {
def envVarName = 'MY_VAR'
env.setProperty(envVarName, 'my-value2')
}
Run Code Online (Sandbox Code Playgroud)
单击此链接的切换脚本化管道
Jenkinsfile(脚本管道)
node {
withEnv(['DISABLE_AUTH=true',
'DB_ENGINE=sqlite']) {
stage('Build') {
sh 'printenv'
}
}
}
Run Code Online (Sandbox Code Playgroud)
您的脚本应如下所示:
node('my-label') {
wihtEnv(['value=World']) {
stage('Test') {
sh 'echo Hello, ${value}'
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3482 次 |
| 最近记录: |