Full E2E Tests #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Full E2E Tests | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| run_android: | |
| description: 'Run Android tests' | |
| type: boolean | |
| default: true | |
| run_ios: | |
| description: 'Run iOS tests' | |
| type: boolean | |
| default: true | |
| run_react_native: | |
| description: 'Run React Native tests' | |
| type: boolean | |
| default: true | |
| schedule: | |
| # Run weekly on Monday at 00:00 UTC | |
| - cron: '0 0 * * 1' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Android example E2E tests (min/max devices) | |
| android-e2e: | |
| if: ${{ github.event_name == 'schedule' || inputs.run_android }} | |
| uses: ./.github/workflows/e2e-android.yml | |
| with: | |
| devices: '["min","max"]' | |
| timeout-minutes: 45 | |
| boot-timeout: 240 | |
| test-timeout: 600 | |
| free-disk-space: false | |
| run-apk-detection-tests: false | |
| artifact-prefix: android | |
| # iOS example E2E tests (min/max devices) | |
| ios-e2e: | |
| if: ${{ github.event_name == 'schedule' || inputs.run_ios }} | |
| uses: ./.github/workflows/e2e-ios.yml | |
| with: | |
| matrix-include: '[{"device":"min","os":"macos-14"},{"device":"max","os":"macos-26"}]' | |
| timeout-minutes: 45 | |
| boot-timeout: 180 | |
| test-timeout: 600 | |
| artifact-prefix: ios | |
| # React Native E2E tests (Android min/max, iOS min/max, Web) | |
| react-native-e2e: | |
| if: ${{ github.event_name == 'schedule' || inputs.run_react_native }} | |
| uses: ./.github/workflows/e2e-react-native.yml | |
| with: | |
| matrix-include: '[{"platform":"android","device":"min","os":"ubuntu-24.04"},{"platform":"android","device":"max","os":"ubuntu-24.04"},{"platform":"ios","device":"min","os":"macos-14"},{"platform":"ios","device":"max","os":"macos-26"},{"platform":"web","device":"none","os":"ubuntu-24.04"}]' | |
| timeout-minutes: 60 | |
| artifact-prefix: react-native | |
| # Summary status check | |
| e2e-summary: | |
| name: E2E Test Summary | |
| runs-on: ubuntu-latest | |
| needs: [android-e2e, ios-e2e, react-native-e2e] | |
| if: always() | |
| steps: | |
| - name: Check results | |
| run: | | |
| echo "E2E Test Results:" | |
| echo " Android E2E: ${{ needs.android-e2e.result }}" | |
| echo " iOS E2E: ${{ needs.ios-e2e.result }}" | |
| echo " React Native E2E: ${{ needs.react-native-e2e.result }}" | |
| echo "" | |
| if [[ "${{ needs.android-e2e.result }}" != "success" && "${{ needs.android-e2e.result }}" != "skipped" ]] || \ | |
| [[ "${{ needs.ios-e2e.result }}" != "success" && "${{ needs.ios-e2e.result }}" != "skipped" ]] || \ | |
| [[ "${{ needs.react-native-e2e.result }}" != "success" && "${{ needs.react-native-e2e.result }}" != "skipped" ]]; then | |
| echo "::error::One or more E2E test suites failed" | |
| echo "::error::Check the individual job logs for details" | |
| echo "::error::Logs available in artifacts" | |
| exit 1 | |
| fi | |
| echo "::notice::All E2E tests passed successfully!" |