如果一级失败,为什么竹子会停止建造?

4nt*_*ine 1 continuous-integration bamboo

我有3个竹子阶段:测试,分阶段和生产。它们全部提取源代码,编译并运行测试。在上一个版本的Bamboo中,如果一个失败(测试之一失败,则继续进行),它将继续进行下一阶段。在最新版本中,它不会进入下一阶段并停止构建。即使一个阶段失败,我如何覆盖此行为以继续构建?

输出:

simple  17-Sep-2013 17:56:12    Failing task since return code of [c:\dev\maven3\bin\mvn.bat --batch-mode -Djava.io.tmpdir=C:\Program Files\Bamboo\temp\CS-AND-JOB1 clean install -P envbuild -DbuildNumber=4] was 1 while expected 0
simple  17-Sep-2013 17:56:12    Parsing test results...
simple  17-Sep-2013 17:56:12    Finished task 'Maven 3.x'
simple  17-Sep-2013 17:56:12    Running post build plugin 'NCover Results Collector'
simple  17-Sep-2013 17:56:12    Running post build plugin 'Clover Results Collector'
simple  17-Sep-2013 17:56:12    Running post build plugin 'Artifact Copier'
simple  17-Sep-2013 17:56:12    Finalising the build...
simple  17-Sep-2013 17:56:12    Stopping timer.
simple  17-Sep-2013 17:56:12    Build CS-AND-JOB1-4 completed.
Run Code Online (Sandbox Code Playgroud)

Tom*_*all 5

简而言之,您不能忽略此行为,这就是Bamboo(和其他构建工具)设计工作的方式。

您应该做的是:

  1. 只需构建一次,然后将输出保存为工件即可在以后的阶段中使用
  2. 通过从第一阶段检索工件来测试构建输出
  3. 部署到X环境

如果上述任何步骤失败,则不应将其部署到环境中,失败阶段的要点是表明某些问题不正确,您应该修复损坏的测试或排除它们。

  • 恐怕这是正确的答案:Bamboo的各个阶段设计为如果先前的阶段失败,则不会运行。这就是“构建管道”的确切含义。来自[Bamboo docs](https://confluence.atlassian.com/display/BAMBOO/stage)阶段**“必须先成功完成其所有工作,然后才能处理计划的下一个阶段。” ** (2认同)