Cloud archive #50 failed without an issue summary. Dump action issues and any attached App Store Connect builds so the next retry can be diagnosed.
103 lines
3.5 KiB
YAML
103 lines
3.5 KiB
YAML
name: Control iOS Xcode Cloud
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
mode:
|
|
description: Inspect workflows or start the selected Archive workflow
|
|
required: true
|
|
type: choice
|
|
options:
|
|
- inspect
|
|
- start
|
|
- monitor
|
|
- describe
|
|
- store-status
|
|
default: inspect
|
|
workflow_id:
|
|
description: Optional Xcode Cloud workflow ID; auto-selects a single enabled Archive workflow when empty
|
|
required: false
|
|
type: string
|
|
build_run_id:
|
|
description: Xcode Cloud build run ID to monitor
|
|
required: false
|
|
type: string
|
|
app_store_version:
|
|
description: App Store marketing version to inspect
|
|
required: false
|
|
type: string
|
|
app_store_build_id:
|
|
description: App Store Connect build resource ID to inspect
|
|
required: false
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
xcode-cloud:
|
|
if: github.repository == 'tianma-if/edgeever'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 90
|
|
steps:
|
|
- name: Check out Xcode Cloud tooling
|
|
uses: actions/checkout@v5
|
|
|
|
- name: Install App Store Connect client dependencies
|
|
run: python3 -m pip install --quiet PyJWT cryptography
|
|
|
|
- name: Inspect, start, or monitor Xcode Cloud
|
|
env:
|
|
ASC_APP_ID: "6792625631"
|
|
ASC_API_ISSUER: ${{ secrets.EDGEEVER_APPLE_API_ISSUER }}
|
|
ASC_API_KEY_ID: ${{ secrets.EDGEEVER_APPLE_API_KEY_ID }}
|
|
ASC_API_KEY_BASE64: ${{ secrets.EDGEEVER_APPLE_API_KEY_BASE64 }}
|
|
XCODE_CLOUD_MODE: ${{ inputs.mode }}
|
|
XCODE_CLOUD_WORKFLOW_ID: ${{ inputs.workflow_id }}
|
|
XCODE_CLOUD_BUILD_RUN_ID: ${{ inputs.build_run_id }}
|
|
APP_STORE_VERSION: ${{ inputs.app_store_version }}
|
|
APP_STORE_BUILD_ID: ${{ inputs.app_store_build_id }}
|
|
run: |
|
|
case "$XCODE_CLOUD_MODE" in
|
|
inspect)
|
|
python3 scripts/xcode-cloud-control.py inspect
|
|
;;
|
|
start)
|
|
args=(start --wait)
|
|
if [[ -n "$XCODE_CLOUD_WORKFLOW_ID" ]]; then
|
|
args+=(--workflow-id "$XCODE_CLOUD_WORKFLOW_ID")
|
|
fi
|
|
python3 scripts/xcode-cloud-control.py "${args[@]}"
|
|
;;
|
|
describe)
|
|
if [[ -z "$XCODE_CLOUD_BUILD_RUN_ID" ]]; then
|
|
echo "::error::build_run_id is required in describe mode"
|
|
exit 1
|
|
fi
|
|
python3 scripts/xcode-cloud-control.py describe \
|
|
--build-run-id "$XCODE_CLOUD_BUILD_RUN_ID"
|
|
;;
|
|
monitor)
|
|
if [[ -z "$XCODE_CLOUD_BUILD_RUN_ID" ]]; then
|
|
echo "::error::build_run_id is required in monitor mode"
|
|
exit 1
|
|
fi
|
|
python3 scripts/xcode-cloud-control.py wait \
|
|
--build-run-id "$XCODE_CLOUD_BUILD_RUN_ID" \
|
|
--wait-valid
|
|
;;
|
|
store-status)
|
|
if [[ -z "$APP_STORE_VERSION" || -z "$APP_STORE_BUILD_ID" ]]; then
|
|
echo "::error::app_store_version and app_store_build_id are required in store-status mode"
|
|
exit 1
|
|
fi
|
|
python3 scripts/xcode-cloud-control.py store-status \
|
|
--version "$APP_STORE_VERSION" \
|
|
--build-id "$APP_STORE_BUILD_ID"
|
|
;;
|
|
*)
|
|
echo "::error::Unsupported Xcode Cloud mode: $XCODE_CLOUD_MODE"
|
|
exit 1
|
|
;;
|
|
esac
|