当调用appcenter-pre-build.sh时,我有一堆脚本被调用。例如,其中一项是简单的检查,以查看当前分支标记在存储库中是否已经存在。
#!/usr/bin/env bash
set -e # Exit immediately if a command exits with a non-zero status (failure)
# 1 Fetch tags
git fetch --tags
# See if the tag exists
if git tag --list | egrep -q "^$VERSION_TAG$"
then
echo "Error: Found tag. Exiting."
exit 1
else
git tag $VERSION_TAG
git push origin $VERSION_TAG
fi
如果找到标签,我想在AppCenter中中止构建并使其失败。当我通过Xcode Server运行所有程序时,此方法工作得很好,但是由于某种原因,我无法弄清楚如何在脚本失败时中止构建。我没有看到太多有关此特定主题的文档,Microsoft的AppCenter成员正在花时间与我联系。
任何人都对此有经验和/或知道如何从他们的脚本中使AppCenter构建失败?预先感谢您的想法!
最佳答案
好,知道了。看起来像使用env变量“$ APPCENTER_BUILD_ID”发送curl请求来取消构建可以解决此问题。在AppCenter内无法使用非零值退出脚本。
这是做什么的样本。我只是将其放在特殊的“cancelAppCenterBuild.sh”脚本中,并在退出时将其命名。
API_TOKEN="<YourAppToken>"
OWNER_NAME="<YourOwnerOrOrganizationName>"
APP_NAME="<YourAppName>"
curl -iv "https://appcenter.ms/api/v0.1/apps/$OWNER_NAME/$APP_NAME/builds/$APPCENTER_BUILD_ID" \
-X PATCH \
-d "{\"status\":\"cancelling\"}" \
--header 'Content-Type: application/json' \
--header "X-API-Token: $API_TOKEN"
专家提示:如果您曾经重命名应用程序,则AppCenter服务器在引用新名称时会遇到问题。我收到带有禁止信息的403。您可能必须将应用名称更改为原始名称,或者只是在AppCenter中从头开始重建应用。
关于ios - 如何使基于脚本退出代码的AppCenter构建失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60329968/