From 3d6a3f314bc12b9e4f935e0bd4c3c7f046675bd3 Mon Sep 17 00:00:00 2001 From: Mahmoud Elmorabea Date: Thu, 22 Oct 2026 20:11:07 +0400 Subject: [PATCH 1/2] ci: post scheduled scene-routing E2E failures to #squad-mobile-alerts Co-Authored-By: Claude Opus 5.5 --- .github/workflows/react-native-scene-e2e.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/react-native-scene-e2e.yml b/.github/workflows/react-native-scene-e2e.yml index 41dd5663..78a25103 100644 --- a/.github/workflows/react-native-scene-e2e.yml +++ b/.github/workflows/react-native-scene-e2e.yml @@ -75,3 +75,10 @@ jobs: path: ${{ runner.temp }}/react-native-scene-maestro-* if-no-files-found: ignore retention-days: 7 + + - name: Notify #squad-mobile-alerts of a scheduled failure + if: failure() && github.event_name == 'schedule' + uses: customerio/mobile-ci-tools/github-actions/slack-notify-scheduled-failure/v1@main + with: + slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }} + label: scene notification routing From da560dca3f718b0f72d44332f890305b3a106869 Mon Sep 17 00:00:00 2001 From: Mahmoud Elmorabea Date: Fri, 23 Oct 2026 13:56:01 +0400 Subject: [PATCH 2/2] ci: reserve time for scene E2E failure alerts --- .github/workflows/react-native-scene-e2e.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/react-native-scene-e2e.yml b/.github/workflows/react-native-scene-e2e.yml index 78a25103..6ce70c47 100644 --- a/.github/workflows/react-native-scene-e2e.yml +++ b/.github/workflows/react-native-scene-e2e.yml @@ -23,30 +23,37 @@ jobs: route-notifications: name: RN scene notification routing on Xcode 27 runs-on: xcode-27 + # Step budgets total 57 minutes, leaving room before the job cancellation. + # A step timeout fails the job while evidence and notification steps can still run. timeout-minutes: 60 steps: - name: Check out React Native SDK + timeout-minutes: 2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Verify Xcode 27 toolchain + timeout-minutes: 1 uses: customerio/mobile-ci-tools/github-actions/ios/report-toolchain/v1@main with: expected-xcode-major: '27' expected-ios-sdk-major: '27' - name: Set up Node + timeout-minutes: 3 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '24' cache: npm - name: Set up Ruby + timeout-minutes: 3 uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1.321.0 with: ruby-version: '3.4' - name: Install Maestro + timeout-minutes: 3 shell: bash run: | set -euo pipefail @@ -61,6 +68,7 @@ jobs: echo "$maestro_dir/maestro/bin" >> "$GITHUB_PATH" - name: Test warm and terminated notification routing + timeout-minutes: 40 shell: bash env: E2E_IOS_RUNTIME_MAJOR: '27' @@ -68,6 +76,7 @@ jobs: run: .maestro/run_scene_push.sh - name: Upload Maestro diagnostics + timeout-minutes: 3 if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: @@ -77,7 +86,8 @@ jobs: retention-days: 7 - name: Notify #squad-mobile-alerts of a scheduled failure - if: failure() && github.event_name == 'schedule' + timeout-minutes: 2 + if: (failure() || cancelled()) && github.event_name == 'schedule' uses: customerio/mobile-ci-tools/github-actions/slack-notify-scheduled-failure/v1@main with: slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}