我试图将我的Scripted管道转换为声明性管道并运行一些基本的(我认为)问题。
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 {}
块,但这似乎也没有。
关于如何设置这些变量的任何想法?
答案 0 :(得分:4)
请参阅my answer here,您可以在script
步骤中执行任意管道脚本。以你的榜样为例:
stage ('Deploy to Docker') {
steps {
parallel (
"instance1" : {
steps {
script {
env['containerId'] = sh(script: "docker ps --quiet --filter name=${fullDockerImageName}", returnStdout: true).trim()
}
....
}
}
)
}
}