我们的团队共同开发,我们最近将TeamCity配置为在推送到远程仓库时运行回归测试。理想情况下,我们的开发人员现在将使用Gerrit推送,以便可以通过TeamCity进行推送。我预计并非所有的开发人员都会通过Gerrit推动,并且还会决定继续做一个" git push"并绕过验证门。
我看了一下git pre-push hook ...我看到我可以阻止推送,但是我可以发送一个运行Gerrit推送的新命令吗?
由于
答案 0 :(得分:0)
答案here表明你应该使用预提交钩子,以便甚至不提交失败的测试。
您可以将this添加到预提交文件中:
#!/bin/bash
printf "Temporarily committing results... \n"
git commit "$@"
printf "Testing using Gerrit... \n"
### ({Command to test using Gerrit goes here} && printf "Success! Commit saved! \n") ||
(printf "Tests failed, undoing commit \n" && git reset HEAD^)
或者,您应该只需将命令附加到.git/pre-commit
的末尾即可运行Gerrit。
请注意,挂钩并不能阻止所有灾难;使用选项git commit
运行--no-verify
的人可以进行提交转义测试!