当且仅当有新提交时,如何使 XCode 机器人在一天中的特定时间构建?

How to make XCode bot build at specific time of the day if and only if there have been new commits?

问题:

我目前 运行 在一天中的特定时间定期启动 XCode 机器人。但是,我只希望机器人 进行新构建,前提是 repo 中有任何新的提交。每天在那个特定时间,它应该检查是否有新的提交。如果有新的提交,则继续构建过程,否则中止它。为什么要 运行 一个新的构建并增加版本号等,如果没有变化,对吗?

我尝试了什么?

我浏览了 Continuous Integration with XCode 6 WWDC 视频。它提到我们可以定期 运行 机器人或在每次新提交后 运行 它。我有点想结合这两种方式。在此找不到任何内容。

可能的解决方案?

我看到有预集成脚本可以运行。我想的一种方法是让我的逻辑检查预集成 shell 脚本中是否有新的提交。如果有 none,则中止 XCode 机器人构建。如何从脚本中止构建?如果您还有其他方法,请执行answer/comment。

不完全是答案,但发现了一些可能有帮助的东西。好吧,目前看来,一旦启动,就无法停止该机器人。但是,您可以选择不增加内部版本号,以防上次没有新的提交。根据您使用的内容,testers/users 不会每次都获得新的 build/notification,直到有新的提交。

您可以在 Build Phases 中为 运行 指定脚本。您可以在 Copy Bundle Resources 选项之后放置一个脚本,其中您执行 git diff 并查看是否有任何更改。如果没有变化就退出:

# do not assign the new build number if there is no changes
DIFF=`git diff`
if [[ $DIFF == "" ]]; then exit 0; fi

来源:How to adjust the bundle version number in Xcode automatically