除非我的工作目录是干净的,否则我不希望Archive构建成功。因此,我想在我的Xcode项目中添加一个“运行脚本”构建阶段(或类似的东西),以便:
IF 我正在执行存档构建...
AND 我的源目录中有未提交的更改
那么构建失败并出现错误。
我正在使用Xcode 4和git 1.7。
什么是可以完成这项工作的优秀,简洁,可重复使用的脚本?
答案 0 :(得分:10)
这是我提出的脚本:
#!/bin/sh
if [ -z "$(git status --porcelain)" ]; then
TAG=`date +xcarchive-%Y%m%d-%H%M%S`
echo "Working directory clean, creating tag ${TAG}"
git tag -a -m "Xcode Archive created" ${TAG}
exit 0
else
echo "error: Working directory dirty, stopping build"
exit 1
fi
作为奖励,如果工作副本是干净的,它会创建一个标签。
清洁/脏检查基于this question(我忘了我已经提出了答案)。
如果您不想创建代码,请删除git tag
行。
如果您不想停止构建,请移除exit 1
行。
要在项目中安装它:
ArchiveHousekeeper.sh
)并确保设置了可执行位(chmod +x
)./ArchiveHousekeeper.sh
如果可以使用Xcode 4 Pre-and-Action动作(因此你不需要创建一个“假”目标),那将是很好的,但它们似乎无法影响构建,并且我也不知道它们在哪个目录中执行,可用的环境变量或输出的位置。