我有一个像这样的管道阶段
stage('Unit Tests') {
steps {
parallel (
"Jasmine": {
sh 'gulp karma-tests-ci'
},
"Mocha": {
sh 'gulp mocha-tests'
}
)
}
}
我想在并行步骤完成后添加一个junit插件调用,我试过
stage('Unit Tests') {
steps {
parallel (
"Jasmine": {
sh 'gulp karma-tests-ci'
},
"Mocha": {
sh 'gulp mocha-tests'
}
)
junit 'test/coverage/junit-coverage-results.xml'
}
}
但是得到错误:
WorkflowScript: 18: Invalid step "parallel" used - not allowed in this context - The parallel step can only be used as the only top-level step in a stages step block
在进入下一阶段之前,有没有办法可以做到这一点?
答案 0 :(得分:4)
在撰写本文时,如果您在声明性管道的parallel
块中使用steps
,则无法使用任何其他步骤。
但是,您可以在舞台上添加post
section,以便在成功执行测试后始终运行junit
步骤。例如:
stage('Unit Tests') {
steps {
parallel
'Jasmine': {
sh 'gulp karma-tests-ci'
},
'Mocha': {
sh 'gulp mocha-tests'
}
}
post {
success {
junit 'test/coverage/jasmine-results.xml'
junit 'test/coverage/mocha-results.xml'
}
}
}
答案 1 :(得分:1)
您应该使用并行分支内的steps
。
在groovy中这应该有效:
stage ("test"){
parallel(
"Mocha": {
node{
sh 'gulp mocha-tests'
}
},
"Jasmin": {
node{
sh 'gulp karma-tests-ci'
}
}
)
node{
junit 'test/coverage/junit-coverage-results.xml'
}
}