我有一个管道,应该基于组件的静态数组并行运行 3 个不同的作业。 这是我的代码:
pipeline {
agent any
parameters {
...
}
stages {
stage('Deployment Jobs') {
steps {
script {
parallel ['X', 'Y', 'Z'].collectEntries { value ->
["Deploy ${value}": {
build job: "${value}_deploy",
parameters: [
...
],
wait: true
}]
}
}
}
}
}
}
我收到错误:
groovy.lang.MissingPropertyException: No such property: parallel for class: groovy.lang.Binding
at groovy.lang.Binding.getVariable(Binding.java:63)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:251)
at org.kohsuke.groovy.sandbox.impl.Checker$7.call(Checker.java:353)
我错过了什么?
不确定为什么 Jenkins 不喜欢你创建闭包的方式。对您的代码稍加修改即可尝试以下操作。
pipeline {
agent any
parameters {
...
}
stages {
stage('Deployment Jobs') {
steps {
script {
def parallelMap = ['X', 'Y', 'Z'].collectEntries { value ->
["Deploy ${value}": {
build job: "${value}_deploy",
parameters: [
...
],
wait: true
}]
}
parallel parallelMap
}
}
}
}
}