多步并行阶段的配置

  • 本文关键字:配置 并行 drone.io
  • 更新时间 :
  • 英文 :


我有一个包含多个服务的单存储库。理想情况下,我想并行测试每个服务。每个分支有 2 个阶段:

  • 测试
  • 基准

给出类似的东西:

clone
/    
/      
/        
/          
svc1-test    svc2-test
|            |
svc1-bench   svc2-bench
            /
          /
        /
      /
notify

仅当所有分支都成功时,生成才会通过。此外,我们可能会提前使分支失败,并且如果任何给定分支的测试失败,则不执行基准测试。

通过阅读文档,我看到了如何使用group运行并行阶段,但没有了解如何将多个阶段放在一个分支中。

我想我的后备解决方案是将组合测试+基准放在一个阶段中,但我认为隔离它们会很好,特别是因为每个依赖关系可能有所不同。

我正在寻找类似的东西,并发现用户 cdieck 在这里回答了它。

这就是它在蓝海中的样子。

复制相同的内容以供快速参考:

pipeline {
agent none
stages {
stage("Example") {
failFast true
parallel {
stage("win7-vs2012") {
agent {
label "win7-vs2012"
}
stages {
stage("checkout (win7-vs2012)") {
steps {
echo "win7-vs2012 checkout"
}
} 
stage("build (win7-vs2012)") {
steps {
echo "win7-vs2012 build"
}
}
stage("test (win7-vs2012)") {
steps {
build 'test-win7-vs2012'
}
}
} 
}
stage("win10-vs2015") {
agent {
label "win10-vs2015"
}
stages {
stage("checkout (win10-vs2015)") {
steps {
echo "win10-vs2015 checkout"
}
} 
stage("build (win10-vs2015)") {
steps {
echo "win10-vs2015 build"
}
}
stage("test (win10-vs2015)") {
steps {
build 'test-win10-vs2015'
}
}
} 
}
stage("linux-gcc5") {
agent {
label "linux-gcc5"
}
stages {
stage("checkout (linux-gcc5)") {
steps {
echo "linux-gcc5 checkout"
}
} 
stage("build (linux-gcc5)") {
steps {
echo "linux-gcc5 build"
}
}
stage("test (linux-gcc5)") {
steps {
build 'test-linux-gcc5'
}
}
} 
}
}
}
}
}

相关内容

  • 没有找到相关文章

最新更新