2

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

4

2 回答 2

3

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

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

于 2015-05-05T20:31:05.527 回答
0

感谢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

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

于 2016-09-15T15:16:43.383 回答