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