Подтвердить что ты не робот

Как я могу запустить cmd из git post-commit hook

Я хочу иметь миниатюрный цикл ци в своих частных проектах и ​​думал, что если я смогу запустить msbuild внутри batfile, я мог бы раскрасить обратную связь в окне cmd и автоматизировать сборку. Поэтому, если бы я мог просто запустить летучую мышь с крючка post-commit, я думаю, это было бы возможно. Невозможно быть новой идеей, но я не могу найти примеров в Google.

любой ввод будет оценен:)

4b9b3361

Ответ 1

Вызов файла .bat из вашего крюка после фиксации не требует магии.

Переименуйте шаблон привязки post-commit в .git/hooks/post-commit.sample в .git/hooks/post-commit и вызовите пакетный файл внутри, просто называя имя командного файла:

#!/bin/sh
path/to/batchfile.bat

Обратите внимание, что рабочий каталог для git hook - это корневой каталог вашего репо. Если вы используете относительные пути к вашему файлу .bat, вы должны принять это во внимание.

Ответ 2

Ответ на

@eckes был близок, но на самом деле я запускал файлы bat/cmd, как если бы они были bash скриптами. Если вы хотите запустить их в виде пакетных файлов, вот что сработало для меня:

после приема

#!/bin/sh
# important that it got the .exe on the end!
cmd.exe /c "C:\path\to\somebatch.cmd"

somebatch.cmd

Вот некоторые переменные stuff/envrionment и т.д., которые могут вам пригодиться:

@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%