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

Posted

技术标签:

【中文标题】当且仅当有新的提交时,如何在一天中的特定时间构建 XCode 机器人?【英文标题】:How to make XCode bot build at specific time of the day if and only if there have been new commits? 【发布时间】:2015-04-08 23:11:47 【问题描述】:

问题:

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

我尝试了什么?

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

可能的解决方案?

我看到有可以运行的预集成脚本。我想的一种方法是让我的逻辑检查预集成 shell 脚本中是否有新的提交。如果没有,则中止 XCode 机器人构建。如何从脚本中止构建?如果您知道其他任何方式,请回答/评论。

【问题讨论】:

【参考方案1】:

不完全是答案,但发现了一些可能有帮助的东西。好吧,目前看来,一旦启动,似乎无法阻止机器人。但是,您可以选择不增加内部版本号,以防上次没有新的提交。根据您使用的内容,测试人员/用户不会每次都收到新的构建/通知,直到有新的提交。

您可以指定要在您的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

【讨论】:

以上是关于当且仅当有新的提交时,如何在一天中的特定时间构建 XCode 机器人?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase函数在一天中的特定时间重置值[重复]

Cloud Functions for Firebase - 在一天中的特定时间更新值,每天 [重复]

在一天中的特定时间安排本地通知

强制 Emacs 使用特定的编码,当且仅当这不会导致问题

当且仅当它在 React Native 中返回 null 时,如何使函数再次运行?

Hibernate HQL:当且仅当所有子实体都具有相同值的属性时,如何选择父实体?