如何使基于脚本退出代码的AppCenter构建失败?

问题描述 投票:1回答:1

我有很多脚本,当调用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构建失败?预先感谢您的想法!

ios swift continuous-integration cd visual-studio-app-center
1个回答
1
投票

好,知道了。看起来像使用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中从头开始重建应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.