Jenkins 并行使用try/catch时管道失败
我对管道非常陌生,一直在阅读一些官方教程。我一直在想如何在并行运行的节点中使用Jenkins 并行使用try/catch时管道失败,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我对管道非常陌生,一直在阅读一些官方教程。我一直在想如何在并行运行的节点中使用try/catch。我在跟踪调查。下面是一些代码: stage('Test') { parallel linux: { node('linux') { checkout scm try { unstash 'app' sh 'make check' }
try/catch
。我在跟踪调查。下面是一些代码:
stage('Test') {
parallel linux: {
node('linux') {
checkout scm
try {
unstash 'app'
sh 'make check'
}
finally {
junit '**/target/*.xml'
}
}
}
}
运行几乎相同的代码,只更改了节点标签。但是,我收到了以下错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 23: Expected a step @ line 23, column 29.
try {
^
有人知道这里怎么了吗 我猜您运行的是Pipeline plugin版本,该语法已被弃用(是的,即使您从官方文档中获取示例,这种情况也会发生…) 我建议你这样做:
stage('Test') {
steps {
parallel (
node('linux') {
"firstTask" : {
// Do your try/catch etc.
}
},
node('linux') { //or some other slave name
"secondTask" : {
// Do some other thing in parallel
}
}
)
}
}
如果这不起作用,请尝试使用这些步骤,因为错误的原因与这些步骤有关:
stage('Test') {
parallel linux: {
node('linux') {
steps {
checkout scm
try {
unstash 'app'
sh 'make check'
}
finally {
junit '**/target/*.xml'
}
}
}
}
}
或:
尝试将“脚本”替换为“步骤”,在我这方面效果很好
stage('Test') {
parallel linux: {
node('linux') {
script {
checkout scm
try {
unstash 'app'
sh 'make check'
}
finally {
junit '**/target/*.xml'
}
}
}
}
}不幸的是,这似乎不起作用。我收到了同样的错误。是的,这是正确的方法。几个月前我发现了,但忘了发了。:)
stage('Test') {
parallel linux: {
node('linux') {
script {
checkout scm
try {
unstash 'app'
sh 'make check'
}
finally {
junit '**/target/*.xml'
}
}
}
}