mirror of
https://github.com/mattermost/mattermost-mobile.git
synced 2026-11-08 04:01:21 +00:00
Retire legacy maestro per-platform contexts from cancel-e2e-runs and document the canonical PR, master, and CMT status context mapping. Wire Detox + Maestro (PR/main/CMT) into Test System IO with a single commit status (e2e/mobile; CMT uses e2e/compatibility-matrix-testing) and groups mobile-pr / mobile-main / cmt-mobile. Upload shard results with correct framework labels, merge Jest shards into TSIO Detox shape, stub missing/dead shards as failures, and post channel summaries after status settles. Matterwick MASTER is treated as MAIN for mobile-main routing. Also harden report/fail paths, stage Maestro screenshots per flow for TSIO galleries, fix a few Detox setup/testID issues, and skip known platform flakes so the pipeline stays actionable while TSIO lands.
92 lines
3.1 KiB
YAML
92 lines
3.1 KiB
YAML
# Maestro E2E orchestration — reusable workflow only.
|
|
# Called from e2e-detox-pr.yml after shared builds and server provisioning complete.
|
|
# Downloads ios-build-simulator-* and android-maestro-build-files-* from the parent run
|
|
# via artifact_run_id; does not build apps or provision servers on its own.
|
|
name: Maestro E2E
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
MOBILE_VERSION:
|
|
required: true
|
|
type: string
|
|
PLATFORM:
|
|
required: false
|
|
type: string
|
|
default: "both"
|
|
SITE_1_URL:
|
|
required: true
|
|
type: string
|
|
SITE_2_URL:
|
|
required: false
|
|
type: string
|
|
SITE_3_URL:
|
|
required: false
|
|
type: string
|
|
run_type:
|
|
required: false
|
|
type: string
|
|
default: "PR"
|
|
artifact_run_id:
|
|
description: "Run ID of the parent workflow that uploaded build artifacts"
|
|
required: true
|
|
type: string
|
|
record_tests_in_zephyr:
|
|
description: "Record Maestro test results in Zephyr Scale"
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
tsio-config:
|
|
description: "TSIO composite identity + total_reports_expected (from parent calculate-tsio-identity)"
|
|
required: true
|
|
type: string
|
|
|
|
# Least-privilege defaults; the TSIO upload (in the nested maestro template)
|
|
# needs id-token: write to mint an OIDC token and actions: read to resolve
|
|
# gh_job_id. Reusable workflows cannot escalate beyond the caller, so grant
|
|
# here too.
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
actions: read
|
|
|
|
# iOS and Android are invoked as separate workflow_call runs from e2e-detox-pr.yml;
|
|
# include PLATFORM so parallel calls do not cancel each other (same github.run_id).
|
|
concurrency:
|
|
group: "${{ github.workflow }}-${{ inputs.PLATFORM }}-${{ inputs.MOBILE_VERSION }}-${{ github.run_id }}"
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
ARTIFACT_RUN_ID: ${{ inputs.artifact_run_id }}
|
|
|
|
jobs:
|
|
run-maestro-ios:
|
|
name: Maestro iOS
|
|
if: inputs.PLATFORM == 'ios' || inputs.PLATFORM == 'both'
|
|
uses: ./.github/workflows/e2e-maestro-template.yml
|
|
with:
|
|
platform: ios
|
|
run-type: ${{ inputs.run_type || 'PR' }}
|
|
MOBILE_VERSION: ${{ inputs.MOBILE_VERSION }}
|
|
MM_TEST_SERVER_URL: ${{ inputs.SITE_2_URL || inputs.SITE_1_URL }}
|
|
artifact_run_id: ${{ inputs.artifact_run_id }}
|
|
record_tests_in_zephyr: ${{ inputs.record_tests_in_zephyr }}
|
|
tsio-config: ${{ inputs.tsio-config }}
|
|
tsio-shard-name: maestro-ios-e2e
|
|
secrets: inherit
|
|
|
|
run-maestro-android:
|
|
name: Maestro Android
|
|
if: inputs.PLATFORM == 'android' || inputs.PLATFORM == 'both'
|
|
uses: ./.github/workflows/e2e-maestro-template.yml
|
|
with:
|
|
platform: android
|
|
run-type: ${{ inputs.run_type || 'PR' }}
|
|
MOBILE_VERSION: ${{ inputs.MOBILE_VERSION }}
|
|
MM_TEST_SERVER_URL: ${{ inputs.SITE_3_URL || inputs.SITE_1_URL }}
|
|
artifact_run_id: ${{ inputs.artifact_run_id }}
|
|
record_tests_in_zephyr: ${{ inputs.record_tests_in_zephyr }}
|
|
tsio-config: ${{ inputs.tsio-config }}
|
|
tsio-shard-name: maestro-android-e2e
|
|
secrets: inherit
|