Компиляция проекта Visual Studio в качестве git-хука перед фиксацией

Есть ли способ создать крючок git pre-commit, который попытается скомпилировать проект Visual Studio, который я фиксирую, в нескольких конфигурациях, а затем разрешить фиксацию только в случае успеха всех компиляций?

У меня есть общее представление о том, как написать хук перед фиксацией, но это все bash, поэтому я не уверен, смогу ли я запустить то, что, как я предполагаю, является MSBuild.exe с конфигурацией моего проекта.


person Karlovsky120    schedule 22.08.2020    source источник


Ответы (1)


Это оказалось намного проще, чем я ожидал. В моем случае я хотел запустить конфигурации отладки и выпуска на платформе x64.

#!/bin/bash

MSBuild="path\to\MSBuild.exe"

if ! exec "$MSBuild" VulkanRT.sln -t:build -p:Configuration=Debug -p:Platform=x64 | grep -q "Build succeeded."
then
    echo "Debug build failed!"
    exit 1
elif ! exec "$MSBuild" VulkanRT.sln -t:build -p:Configuration=Debug -p:Platform=x64 | grep -q "Build succeeded."
then
    echo "Release build failed!"
    exit 1
fi

echo "Release and debug build succeeded!"
exit 0

Обратите внимание, что это целесообразно только для небольших проектов, где время сборки невелико, если только вы не готовы ждать долгого времени сборки.

person Karlovsky120    schedule 23.08.2020