持续集成:Codeship + Gulp (Jasmine)

Continuous Integration: Codeship + Gulp (Jasmine)

我的持续集成使用 Codeship 效果非常好,除了一件事:停止部署并在单元测试失败时提醒我们

这是我们当前的命令:

  1. npm 安装
  2. npm 安装凉亭
  3. 凉亭安装
  4. gulp 测试
  5. 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 test1 使 Codeship 停止并考虑构建为 failed.

也许您可以尝试链接测试和构建任务?

gulp test && gulp build