Git钩子用于在提交或合并之前执行mocha-tests

时间:2016-08-03 15:19:34

标签: git makefile phantomjs mocha githooks

我不太确定,如果可以使用git hook来完成 - 这就是为什么我将这个问题分成三个部分:

  1. 首先进行测试(mocha / phantomjs / meteor)。如果通过,则可以进行提交
  2. 为此我试过这样的事情:

    钩/预提交

    #!/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

    1. 如果从development合并到master分支
    2. ,只需进行测试

      由于测试需要几分钟时间,我认为只有在开发分支合并到主分支之前才会运行它会更聪明一些。 所以在master分支上有alwys刚刚测试过的代码。但是,如何获取当前分支的信息?而且我刚刚找到了信息,只有post-merge,但没有pre-merge挂钩。

      1. 合并后执行Makefile部署
      2. 成功合并后,我想执行make来部署到服务器。因此我会使用post-merge - hook。

        钩/后合并

        #!/bin/bash
        // be sure we are in 'master' branch
        make
        

        但我如何知道合并是否成功(或者是否会由git检查?)以及如何正确执行makefile?

        所以基本上我正在努力使用正确的bash脚本......

1 个答案:

答案 0 :(得分:0)

Mocha确实退出并出现错误,但你的提交挂钩并没有。

  

mocha test / mocha / --recursive -b ||退出1

为我做了诀窍。