Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .github/workflows/buildandtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

job_test:
name: Test
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand All @@ -36,7 +36,7 @@ jobs:

job_lint:
name: Lint
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:

job_check_integrity:
name: Check package integrity
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand All @@ -127,7 +127,7 @@ jobs:

job_build:
name: Build
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down Expand Up @@ -251,7 +251,7 @@ jobs:

job_type_check:
name: Type Check Typescript 3.8
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
env:
Expand Down Expand Up @@ -284,7 +284,7 @@ jobs:
run: yarn type-check
job_circular_dep_check:
name: Circular Dependency Check
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down Expand Up @@ -313,7 +313,7 @@ jobs:

job_bundle:
name: Bundle
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [job_test, job_build, diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
strategy:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codegen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
uses: ./.github/workflows/skip-ci.yml

codegen:
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
strategy:
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/e2e-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,11 @@ jobs:
platform: ["ios", "android"]
include:
- platform: ios
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
name: iOS
appPlain: performance-tests/test-app-plain.ipa
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
name: Android
appPlain: performance-tests/TestAppPlain/android/app/build/outputs/apk/release/app-release.apk
steps:
Expand Down Expand Up @@ -237,13 +237,13 @@ jobs:
# Use Xcode 16 for older RN versions
- platform: ios
rn-version: '0.71.19'
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
runs-on: macos-15
# Use Xcode 26 for newer RN versions (0.83.0)
- platform: ios
rn-version: '0.85.1'
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
exclude:
# exclude all rn versions lower than 0.80.0 for new architecture
- rn-version: '0.71.19'
Expand Down Expand Up @@ -392,9 +392,9 @@ jobs:
include:
- platform: ios
rn-version: '0.85.1'
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
- platform: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest

steps:
- name: Check if platform is needed
Expand Down Expand Up @@ -518,7 +518,7 @@ jobs:
xcrun simctl bootstatus booted -b
# Launch and dismiss Settings.app to ensure SpringBoard and system services
# are fully initialized โ€” this avoids Maestro connecting to a half-booted
# simulator on Cirrus Labs Tart VMs.
# simulator.
xcrun simctl launch booted com.apple.Preferences
sleep 5
xcrun simctl terminate booted com.apple.Preferences
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/native-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:

test-ios:
name: ios
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
needs: [diff_check, detect-changes]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' && needs.detect-changes.outputs.needs_ios == 'true' }}
steps:
Expand Down Expand Up @@ -104,7 +104,7 @@ jobs:

test-android:
name: android
runs-on: ["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest
needs: [diff_check, detect-changes]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' && needs.detect-changes.outputs.needs_android == 'true' }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sample-application-expo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:

build-ios:
name: Build ios ${{ matrix.build-type }} ${{ matrix.ios-use-frameworks }}
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
needs: [diff_check, detect-changes]
if: >-
${{
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
IOS_APP_ARCHIVE_PATH: sentry-react-native-sample.app.zip
ANDROID_APP_ARCHIVE_PATH: sentry-react-native-sample.apk.zip
REACT_NATIVE_SAMPLE_PATH: samples/react-native
IOS_DEVICE: 'iPhone 16'
IOS_DEVICE: 'iPhone 17'

Check warning on line 22 in .github/workflows/sample-application.yml

View check run for this annotation

@sentry/warden / warden: code-review

IOS_DEVICE bumped to 'iPhone 17' while IOS_VERSION remains '>=18.0'

The default simulator device was changed from 'iPhone 16' to 'iPhone 17' as part of a PR whose stated scope is reverting runner labels only. The 'iPhone 17' simulator is only available with Xcode 26 / iOS 26 runtimes, but IOS_VERSION still allows iOS >=18.0. If the macos-26 runner image does not ship the iPhone 17 simulator (or an iOS 18.x runtime paired with it), simulator selection in downstream e2e/test steps will fail, breaking the sample-application workflow. This also appears to be an unintended side effect outside the PR's documented scope.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IOS_DEVICE bumped to 'iPhone 17' while IOS_VERSION remains '>=18.0'

The default simulator device was changed from 'iPhone 16' to 'iPhone 17' as part of a PR whose stated scope is reverting runner labels only. The 'iPhone 17' simulator is only available with Xcode 26 / iOS 26 runtimes, but IOS_VERSION still allows iOS >=18.0. If the macos-26 runner image does not ship the iPhone 17 simulator (or an iOS 18.x runtime paired with it), simulator selection in downstream e2e/test steps will fail, breaking the sample-application workflow. This also appears to be an unintended side effect outside the PR's documented scope.

Verification

Reviewed the hunk and PR description. The PR explicitly states 'Only runner labels change in this PR', yet line 22 changes IOS_DEVICE from 'iPhone 16' to 'iPhone 17' โ€” a behavioral change unrelated to runner labels. IOS_VERSION on line 23 remains '>=18.0', creating a potential mismatch with the new device which is iOS 26-era hardware.

Identified by Warden code-review ยท RND-JRU

IOS_VERSION: '>=18.0'
ANDROID_API_LEVEL: '30'

Expand All @@ -44,7 +44,7 @@

build-ios:
name: Build ${{ matrix.rn-architecture }} ios ${{ matrix.build-type }} ${{ matrix.ios-use-frameworks }}
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
needs: [diff_check, detect-changes]
if: >-
${{
Expand Down Expand Up @@ -212,7 +212,7 @@

build-macos:
name: Build legacy macos ${{ matrix.build-type }}
runs-on: ["ghcr.io/cirruslabs/macos-sequoia-xcode:16.4", "runner_group_id:10"]
runs-on: macos-15
needs: [diff_check, detect-changes]
if: >-
${{
Expand Down Expand Up @@ -290,7 +290,7 @@

test-ios:
name: Test ios production REV2
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
needs: [diff_check, detect-changes, build-ios]
if: >-
${{
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/size-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
ios:
needs: [ready-to-merge-gate]
name: iOS Size Analysis
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
timeout-minutes: 45

steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/testflight.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:

upload_to_testflight:
name: Build and Upload React Native Sample to Testflight
runs-on: ["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]
runs-on: macos-26
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down
5 changes: 2 additions & 3 deletions dev-packages/e2e-tests/cli.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ if (actions.includes('test')) {
.filter(f => f.endsWith('.yml') && !f.startsWith('utils'))
.sort((a, b) => {
// Run crash.yml last โ€” it kills the app via nativeCrash(), and
// post-crash simulator state can be flaky on Cirrus Labs Tart VMs.
// post-crash simulator state can be flaky.
if (a === 'crash.yml') return 1;
if (b === 'crash.yml') return -1;
return a.localeCompare(b);
Expand All @@ -326,8 +326,7 @@ if (actions.includes('test')) {
console.log(`Discovered ${flowFiles.length} Maestro flows: ${flowFiles.join(', ')}`);

// Warm up Maestro's driver connection before running test flows.
// The first Maestro launchApp after simulator boot can fail on Cirrus
// Labs Tart VMs because the IDB/XCUITest driver isn't fully connected.
// The first Maestro launchApp after simulator boot can fail if thedriver isn't fully connected.
// Running a lightweight warmup flow ensures the driver is ready.
const warmupFlow = path.join('maestro', 'utils', 'warmup.yml');
console.log('Warming up Maestro driver...');
Expand Down
4 changes: 2 additions & 2 deletions dev-packages/e2e-tests/maestro/utils/warmup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ appId: ${APP_ID}
jsEngine: graaljs
---
# Warm up Maestro's IDB/XCUITest driver connection on the simulator.
# The very first Maestro launchApp after simulator boot can fail on Cirrus
# Labs Tart VMs โ€” running a lightweight flow first ensures the driver is
# The very first Maestro launchApp after simulator boot can fail,
# running a lightweight flow first ensures the driver is
# fully connected before real test flows start.
- launchApp:
clearState: true
Expand Down
Loading