我正在尝试在我的Jenkinsfile中运行以下过程:
步骤2和3需要锁定资源,因为我只有一个测试环境可用。
实现并行运行第2步没有问题,但是,当我配置Jenkinsfile使其一起运行时,我从Jenkins中收到以下错误:
WorkflowScript: 19: Parallel stages or branches can only be included in a top-level stage. @ line 19, column 7.
stage('Deploy Foo') {
^
这是完整的Jenkins文件:
pipeline {
agent any
stages {
stage('Build') {
steps {
powershell(script: '.\\ci\\build.ps1 -Script .\\ci\\build\\build.cake')
}
}
stage('Deploy and run tests') {
when {
branch('develop')
}
options {
lock('test-env')
}
stages {
stage('Deploy') {
parallel {
stage('Deploy Foo') {
steps {
build(job: 'Deploy_Foo')
}
}
stage('Deploy Bar') {
steps {
build(job: 'Deploy_Bar')
}
}
}
}
stage('Run tests') {
steps {
powershell(script: '.\\ci\\build.ps1 -Script .\\ci\\test\\build.cake')
}
}
}
}
}
}
我还尝试了一种针对Deploy和Test阶段分别锁定 test-env 资源的解决方案,但是,当某些其他正在运行的作业可能等待该资源并且“跳入”当前作业的“部署”和“测试”阶段。
有什么方法可以实现Jenkinsfile中上述的顺序和并行阶段的混合吗?