如何中止 XCode Bot 构建?

How to abort XCode Bot build?

我对 Xcode 机器人有疑问。我能够编译、测试和存档我的项目,但我想使用外部工具来检查我是否对上次提交进行了代码审查。如果没有代码审查,我希望能够中止构建。 我试图在 pre-build 脚本中添加 exit 1exit 0 但它只是结束给定的脚本而不是整个构建过程。所以我的问题是如何中止 Xcode 机器人构建(集成)?

从技术上讲,这是可能的。您可以取消集成,这会立即中止它。这是一个非常类似于从命令行触发集成的过程,我 ,但是您首先需要通过使用端点 /xcode/api/bots/BOT_ID/integrations 调用来找出集成的 _id 和第一个集成应该是最新的。复制 _id,然后在 /xcode/api/integrations/INTEGRATION_ID/cancel 上调用 POST,这将取消集成。

我在我的工具 Buildasaur 中使用了所有这些 API,因此请查看源代码以了解更多详细信息。

感谢czechboy的回答,这里给复制粘贴的朋友一个解决办法。使用类似这样的东西作为预集成脚本:

#!/bin/sh

# something returning an error code like:
${XCS_PRIMARY_REPO_DIR}/customPreIntegrationConfiguration.sh

# if script exits with error code 1:
if (( $? )); then
    echo "canceling integration ${XCS_INTEGRATION_ID}..."
    curl -kX POST "https://localhost:20343/api/integrations/${XCS_INTEGRATION_ID}/cancel"
fi

$? 检查最后一个命令的退出代码,在本例中是脚本。如果您在某处使用管道,则可能需要使用 set -o pipefail 到 return 1 如果只有一个管道组件 returns 1.