构建失败后,代码构建将继续 [英] Code build continues after build fails
问题描述
我正在使用git,代码构建和弹性beantalk构建CI / CD管道。
I'm building a CI/CD pipeline using git, codebuild and elastic beanstalk.
在执行代码构建过程中,由于测试用例的语法错误而导致构建失败时,我看到代码构建过程进入了下一个阶段,并最终继续产生工件。
During codebuild execution when build fails due to syntax error of a test case, I see codebuild progress to next stage and ultimatly go on to produce the artifacts.
我的理解是,如果构建失败,则应该停止执行。这是正确的行为吗?
My understanding was if the build fails, execution should stop. is this a correct behavior ?
请参阅下面的buildspec。
Please see the buildspec below.
version: 0.2
phases:
install:
commands:
- echo Installing package.json..
- npm install
- echo Installing Mocha...
- npm install -g mocha
pre_build:
commands:
- echo Installing source NPM placeholder dependencies...
build:
commands:
- echo Build started on `date`
- echo Compiling the Node.js code
- mocha modules/**/tests/*.js
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- modules/*
- node_modules/*
- package.json
- config/*
- server.js
推荐答案
CodeBuild通过退出代码检测生成失败。您应该确保测试执行在失败时返回非零退出代码。
CodeBuild detects build failures by exit codes. You should ensure that your test execution returns a non-zero exit code on failure.
POST_BUILD
始终会一直运行,只要 BUILD
也已运行(不管 BUILD
是成功还是失败。)<$ c $也是如此c> UPLOAD_ARTIFACTS 。这样便可以检索调试信息/工件。
POST_BUILD
will always run as long as BUILD
was also run (regardless of BUILD
's success or failure.) The same goes for UPLOAD_ARTIFACTS
. This is so you can retrieve debug information/artifacts.
如果要在 POST_BUILD
中执行其他操作,具体取决于 BUILD
的成功或失败,您可以测试内置环境变量 CODEBUILD_BUILD_SUCCEEDING
,设置为 1
如果 BUILD
成功,则 0
如果失败。
If you want to do something different in POST_BUILD
depending on the success or failure of BUILD
, you can test the builtin environment variable CODEBUILD_BUILD_SUCCEEDING
, which is set to 1
if BUILD
succeeded, and 0
if it failed.
这篇关于构建失败后,代码构建将继续的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!