我有Xcode机器人的问题。我能够编译,测试和存档我的项目,但我想使用外部工具来检查我是否对最后的提交进行了代码审查。如果没有代码审查,我希望能够中止构建。
我尝试在exit 1
脚本中添加exit 0
或pre-build
,但它只是给定脚本而不是整个构建过程。所以我的问题是如何中止Xcode bot构建(集成)?
答案 0 :(得分:3)
从技术上讲,这是可能的。您可以取消集成,立即中止它。这是一个非常类似于从命令行触发集成的过程,我described here,但您首先需要通过使用端点_id
调用来找出集成的/xcode/api/bots/BOT_ID/integrations
并且第一次整合应该是最新的。复制_id
,然后在/xcode/api/integrations/INTEGRATION_ID/cancel
上调用POST,这将取消集成。
我在我的工具Buildasaur中使用了所有这些API,因此请查看源代码以获取更多详细信息。
答案 1 :(得分: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。