#!/usr/bin/env bash set -euo pipefail BASE_URL="${BASE_URL:-https://sentry.xuqinmin.com}" APP_ID="${APP_ID:-ak_demo_chat}" MODULE_ID="${MODULE_ID:-chat-home}" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" ASSET_DIR="${SCRIPT_DIR%/scripts}/demo-assets" APK_FILE="${ASSET_DIR}/xuqm-chat-demo-1.0.1.apk" BUNDLE_FILE="${ASSET_DIR}/chat-home.android.bundle" echo "Uploading demo APK metadata to ${BASE_URL}" APP_UPLOAD_JSON="$(curl -fsS -X POST "${BASE_URL}/api/v1/updates/app/upload" \ -F "appId=${APP_ID}" \ -F "platform=ANDROID" \ -F "versionName=1.0.1" \ -F "versionCode=2" \ -F "changeLog=RN demo app update 1.0.1" \ -F "forceUpdate=false" \ -F "apkFile=@${APK_FILE};type=application/vnd.android.package-archive")" APP_VERSION_ID="$(printf '%s' "${APP_UPLOAD_JSON}" | sed -n 's/.*"id":"\([^"]*\)".*/\1/p')" if [[ -z "${APP_VERSION_ID}" ]]; then echo "Failed to parse app version id" echo "${APP_UPLOAD_JSON}" exit 1 fi curl -fsS -X POST "${BASE_URL}/api/v1/updates/app/${APP_VERSION_ID}/publish" >/dev/null echo "Uploading demo RN bundle to ${BASE_URL}" RN_UPLOAD_JSON="$(curl -fsS -X POST "${BASE_URL}/api/v1/rn/upload" \ -F "appId=${APP_ID}" \ -F "moduleId=${MODULE_ID}" \ -F "platform=ANDROID" \ -F "version=1.0.1" \ -F "minCommonVersion=1.0.0" \ -F "note=RN chat demo hot update 1.0.1" \ -F "bundle=@${BUNDLE_FILE};type=application/javascript")" RN_BUNDLE_ID="$(printf '%s' "${RN_UPLOAD_JSON}" | sed -n 's/.*"id":"\([^"]*\)".*/\1/p')" if [[ -z "${RN_BUNDLE_ID}" ]]; then echo "Failed to parse RN bundle id" echo "${RN_UPLOAD_JSON}" exit 1 fi curl -fsS -X POST "${BASE_URL}/api/v1/rn/${RN_BUNDLE_ID}/publish" >/dev/null echo "Demo assets published successfully."