我希望在我的私人项目上有一个微型ci循环,并且正在考虑是否可以在batfile中运行msbuild我可以在cmd窗口上着色反馈并自动化构建。所以,如果我可以从post-commit钩子中触发bat,我想这是可能的。它不可能是一个新的想法,但我在谷歌上找不到任何例子。
任何输入将不胜感激:)
答案 0 :(得分:39)
@eckes的答案很接近但实际上是在运行我的bat / cmd文件,好像它们是bash脚本一样。如果你想将它们作为批处理文件运行,这对我有用:
#!/bin/sh
# important that it's got the .exe on the end!
cmd.exe /c "C:\path\to\somebatch.cmd"
以下是您可能会觉得有用的一些东西/环境变量等:
@echo off
:: read commit hook stdin data e.g. "aa45321… 68f7abf… refs/heads/master"
set /p OLDREV_NEWREV_REFNAME=
echo Directory of this script is %~dp0
echo Repository root is %CD%
set OLDREV=%OLDREV_NEWREV_REFNAME:~0,40%
echo OLDREV: %OLDREV%
set NEWREV=%OLDREV_NEWREV_REFNAME:~41,40%
echo NEWREV: %NEWREV%
set REFNAME=%OLDREV_NEWREV_REFNAME:~82,999%
echo REFNAME: %REFNAME%
答案 1 :(得分:18)
从你的提交后挂钩调用.bat
文件不需要任何魔法。
将.git/hooks/post-commit.sample
中的提交后挂钩模板重命名为.git/hooks/post-commit
,并通过简单地写下批处理文件的名称来调用批处理文件:
#!/bin/sh
path/to/batchfile.bat
请注意,git hook的工作目录是repo的根目录。如果您使用.bat
文件的相对路径,则必须考虑这一点。