问题描述
是否有一种创建git pre-commit钩子的方法,该钩子将尝试以几种配置编译我正在提交的Visual Studio项目,然后仅在所有编译成功后才允许提交?
我对如何编写一个预提交的钩子有了一个大致的了解,但这全是bash,所以我不确定是否可以使其运行我猜测的MSBuild.exe
我的项目的配置。
解决方法
这比我预期的要简单得多。就我而言,我想在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
请注意,这仅适用于构建时间较短的小型项目,除非您可以等待较长的构建时间。