【发布时间】:2016-08-03 15:19:33
【问题描述】:
我不太确定,如果这可以用 git hooks 完成 - 这就是我将这个问题分成三个部分的原因:
- 首先做一个测试(mocha/phantomjs/meteor)。如果通过了,就可以提交了
为此,我尝试了这样的方法:
挂钩/预提交
#!/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 脚本不是很熟悉(我使用的是 MacOS)。这就是为什么我需要你的帮助才能让这个简单的脚本运行起来。
Mocha 文档 (https://mochajs.org/) 说存在“CI 支持的正确退出状态”。因此,如果我正确理解这一点,如果任何测试失败,它将执行exit 1。
- 如果从
development合并到master分支,只需进行测试
由于测试需要几分钟时间,我想如果它们只在开发分支合并到主分支之前运行会更聪明一些。
所以在主分支上总是有刚刚测试过的代码。但是我如何获得当前分支是哪个分支的信息?而且我刚刚找到信息,只有post-merge,但没有pre-merge 钩子。
- 合并后执行
Makefile部署
成功合并后,我想执行make 来部署到服务器。因此我会使用post-merge-hook。
挂钩/合并后
#!/bin/bash
// be sure we are in 'master' branch
make
但是我如何知道合并是否成功(或者这是否会被 git 检查?)以及如何正确执行 makefile?
所以基本上我正在努力使用正确的 bash 脚本......
【问题讨论】:
标签: git makefile phantomjs mocha.js githooks