持续集成:Codeship + Gulp (Jasmine)
Continuous Integration: Codeship + Gulp (Jasmine)
我的持续集成使用 Codeship 效果非常好,除了一件事:停止部署并在单元测试失败时提醒我们。
这是我们当前的命令:
- npm 安装
- npm 安装凉亭
- 凉亭安装
- gulp 测试
- gulp 建造
问题是 gulp test
是否以成功或失败结束,gulp build
构建。
我成功 console.log()
我的 gulp test
退出状态,但我不知道如何让 Codeship 监听这个退出状态。
只要任何命令以非零退出代码退出,基于 Codeship 的构建就会失败。
请确保 运行 gulp test
是这种情况。
(如果有任何其他问题,您也可以通过 support@codeship.com 联系我们!)
使用@mlocker answer 和 this discussion on Github,我找到了一个适合我的解决方法:
gulp.task('test', function (done) {
karma.start({}, function(exitStatus){
done(exitStatus ? "There are failing unit tests" : undefined);
});
});
这里的技巧是,如果 exitStatus 不同于 0,您将在 "There are failing unit tests" 上得到一个 formatError,它将退出 gulp test
并 1
使 Codeship 停止并考虑构建为 failed
.
也许您可以尝试链接测试和构建任务?
gulp test && gulp build
我的持续集成使用 Codeship 效果非常好,除了一件事:停止部署并在单元测试失败时提醒我们。
这是我们当前的命令:
- npm 安装
- npm 安装凉亭
- 凉亭安装
- gulp 测试
- gulp 建造
问题是 gulp test
是否以成功或失败结束,gulp build
构建。
我成功 console.log()
我的 gulp test
退出状态,但我不知道如何让 Codeship 监听这个退出状态。
只要任何命令以非零退出代码退出,基于 Codeship 的构建就会失败。
请确保 运行 gulp test
是这种情况。
(如果有任何其他问题,您也可以通过 support@codeship.com 联系我们!)
使用@mlocker answer 和 this discussion on Github,我找到了一个适合我的解决方法:
gulp.task('test', function (done) {
karma.start({}, function(exitStatus){
done(exitStatus ? "There are failing unit tests" : undefined);
});
});
这里的技巧是,如果 exitStatus 不同于 0,您将在 "There are failing unit tests" 上得到一个 formatError,它将退出 gulp test
并 1
使 Codeship 停止并考虑构建为 failed
.
也许您可以尝试链接测试和构建任务?
gulp test && gulp build