在 Jenkins 中使用声明式管道步骤在并行步骤中分配变量
Assigning variables in a parallel step using Declarative Pipeline steps in Jenkins
我正在尝试将我的脚本化管道转换为声明式管道,并 运行 解决一些基本的(我认为)问题。
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
environment {
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
steps {
....
}
}
)
}
}
这会导致以下异常:
WorkflowScript: 197: Expected a step @ line 197, column 29.
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName} ", returnStdout: true).trim()
由于我不允许在 steps {}
块内进行变量分配,我将其移至 environment {}
块,但这似乎也没有用。
知道如何设置这些类型的变量吗?
参见 ,您可以在 script
步骤中执行任意管道脚本。以你为例:
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
steps {
script {
env['containerId'] = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
....
}
}
)
}
}
我正在尝试将我的脚本化管道转换为声明式管道,并 运行 解决一些基本的(我认为)问题。
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
environment {
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
steps {
....
}
}
)
}
}
这会导致以下异常:
WorkflowScript: 197: Expected a step @ line 197, column 29.
containerId = sh(script: "docker ps --quiet --filter name=${fullDockerImageName} ", returnStdout: true).trim()
由于我不允许在 steps {}
块内进行变量分配,我将其移至 environment {}
块,但这似乎也没有用。
知道如何设置这些类型的变量吗?
参见 script
步骤中执行任意管道脚本。以你为例:
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
steps {
script {
env['containerId'] = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
....
}
}
)
}
}