我不太确定,如果可以使用git hook来完成 - 这就是为什么我将这个问题分成三个部分:
为此我试过这样的事情:
钩/预提交
#!/bin/bash
// First check if current branch is 'development'
meteor test --once --driver-package dispatch:mocha-phantomjs
chimp --ddp=http://localhost:3000 --mocha --path=tests --browser=phantomjs
所以我期望的是,测试首先执行。如果任何测试失败,则不会进行任何提交,如果全部通过,则将执行提交。 如你所见,我对bash-scripts不太熟悉(我使用的是MacOS)。这就是为什么我需要你帮助让这个简单的脚本工作。
Mocha文档(https://mochajs.org/)表示CI支持有适当的退出状态'。因此,如果我理解正确,如果任何测试失败,它将执行exit 1
。
development
合并到master
分支由于测试需要几分钟时间,我认为只有在开发分支合并到主分支之前才会运行它会更聪明一些。
所以在master分支上有alwys刚刚测试过的代码。但是,如何获取当前分支的信息?而且我刚刚找到了信息,只有post-merge
,但没有pre-merge
挂钩。
Makefile
部署成功合并后,我想执行make
来部署到服务器。因此我会使用post-merge
- hook。
钩/后合并
#!/bin/bash
// be sure we are in 'master' branch
make
但我如何知道合并是否成功(或者是否会由git检查?)以及如何正确执行makefile?
所以基本上我正在努力使用正确的bash脚本......
答案 0 :(得分:0)
Mocha确实退出并出现错误,但你的提交挂钩并没有。
mocha test / mocha / --recursive -b ||退出1
为我做了诀窍。