как запустить cmd из хита git post-commit - PullRequest
16 голосов
/ 13 сентября 2011

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

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

Ответы [ 2 ]

40 голосов
/ 21 марта 2013

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

после приема

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

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%
18 голосов
/ 13 сентября 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...