我有很多脚本,当调用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="abcdefghijklmnopqrstuvwxyz"
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中从头开始重建应用程序。