当调用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/

10-13 07:21