2
Folks, 一直在试图找出Codebuild项目的正确方法,该项目在编译和运行茉莉花测试后产生工件,或者失败并停止CodePipeline从继续部署。使用AWS CodeBuild或Lambda在部署之前运行茉莉测试
如果我buildspec.yml
样子:
version: 0.1
phases:
install:
commands:
- echo Installing... Running npm install
- npm install
pre_build:
commands:
- echo pre_build...
build:
commands:
- echo Testing... Running npm test
- npm test
post_build:
commands:
- echo Build completed on `date`
artifacts:
files:
- '**/*'
我应该如何失败了npm test
阶段?如果在npm test
期间有任何茉莉花测试失败,该工件是否仍会生产?
另一种认为我是有以下如果任何测试失败发生:
var params = {
jobId: jobId,
failureDetails: {
message: JSON.stringify(message),
type: 'JobFailed',
externalExecutionId: context.invokeid
}
};
codepipeline.putJobFailureResult(params, function(err, data) {
...
});
或发送停止信号CodeBuild?
var params = {
id: 'STRING_VALUE' /* required */
};
codebuild.stopBuild(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
或者我该如何终止构建不产生神器?也许我弄错了,它应该是一个启动单元测试的Lambda函数。我不确定Lambda是否适合这种情况,因为我可以想象一些服务需要一段时间才能完成单元测试
谢谢!