当我的应用程序被构建为 CI 机器机器人时,我想运行 perl 脚本,但如果在开发机器上构建应用程序时手动构建应用程序,我不希望运行脚本。
除了复制目标并让一个目标包含脚本构建阶段和另一个目标不包含脚本构建阶段之外,还有什么方法可以实现这一点?
当我的应用程序被构建为 CI 机器机器人时,我想运行 perl 脚本,但如果在开发机器上构建应用程序时手动构建应用程序,我不希望运行脚本。
除了复制目标并让一个目标包含脚本构建阶段和另一个目标不包含脚本构建阶段之外,还有什么方法可以实现这一点?
刚刚在以下位置发布了对类似问题的答案: Xcode Continuous Integration:detecting the CI environment during a post-action script
在这里,如果它有帮助:
if [[ "$USER" == "_teamsserver" ]]
then
# do something
else
# do something else
fi
[由于您的问题被标记为“Xcode”,因此此解决方案是 Xcode 特有的。它不适用于任何 CI 系统。]
您可以使用两种不同的构建配置,其中一种只是另一种的副本。然后限定运行脚本以使用 CI 方案将使用的配置。
例如
if [ "${CONFIGURATION}" = "CI_Release" ]; then
echo Run your perl script here
fi
为您的 Xcode Bot 使用完全独立的方案是个好主意。其中一个好处是能够在构建过程的各个阶段轻松运行一组不同的脚本。