Skip to content
Open
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
42 changes: 10 additions & 32 deletions .github/workflows/e2e-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
MAESTRO_VERSION: '2.7.0'
MAESTRO_VERSION: "2.7.0"
IOS_DEVICE: "iPhone 17"
IOS_VERSION: ">=18.0"

Expand Down Expand Up @@ -58,11 +58,7 @@
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

Check warning on line 61 in .github/workflows/e2e-v2.yml

View check run for this annotation

@sentry/warden / warden: code-review

[5MW-EFJ] Native test-android uses ubuntu-latest instead of stated ubuntu-24.04-16core (additional location)

Native `test-android` runs on `ubuntu-latest` instead of `ubuntu-24.04-16core`, which conflicts with the stated standardization requirements and may cause CI timeouts or OOM.
name: Android
appPlain: performance-tests/TestAppPlain/android/app/build/outputs/apk/release/app-release.apk
steps:
Expand Down Expand Up @@ -251,11 +247,7 @@
rn-version: "0.86.2"
runs-on: macos-26-xlarge
- platform: android
runs-on:
[
"ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04",
"runner_group_id:10",
]
runs-on: ubuntu-latest

Check warning on line 250 in .github/workflows/e2e-v2.yml

View check run for this annotation

@sentry/warden / warden: code-review

[5MW-EFJ] Native test-android uses ubuntu-latest instead of stated ubuntu-24.04-16core (additional location)

Native `test-android` runs on `ubuntu-latest` instead of `ubuntu-24.04-16core`, which conflicts with the stated standardization requirements and may cause CI timeouts or OOM.
exclude:
# exclude all rn versions lower than 0.80.0 for new architecture
- rn-version: "0.71.19"
Expand Down Expand Up @@ -384,12 +376,11 @@
react-native-test:
name:
Test RN ${{ matrix.rn-version }} ${{ matrix.rn-architecture }} ${{ matrix.engine }} ${{ matrix.platform }} ${{
matrix.build-type }} ${{ matrix.ios-use-frameworks }} on ${{matrix.runner_provider}}
matrix.build-type }} ${{ matrix.ios-use-frameworks }}
needs: [react-native-build, diff_check, detect-changes]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}

runs-on: ${{ matrix.runner_provider == 'bitrise' && fromJSON('["bitrise_pool_name:tahoe"]') || matrix.runs-on }}
continue-on-error: ${{ matrix.runner_provider == 'bitrise' }}
runs-on: ${{ matrix.runs-on }}
strategy:
fail-fast: false # keeps matrix running if one fails
matrix:
Expand All @@ -399,24 +390,11 @@
build-type: ["production"]
ios-use-frameworks: ["no"] # test only no frameworks
engine: ["hermes"]
runner_provider: ["cirrus", "bitrise"]
include:
- platform: ios
rn-version: "0.86.2"
runs-on:
[
"ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0",
"runner_group_id:10",
]
runs-on: ["bitrise_pool_name:tahoe"]
- platform: android
runs-on:
[
"ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04",
"runner_group_id:10",
]
exclude:
- platform: android
runner_provider: bitrise
runs-on: ubuntu-latest
Comment on lines 396 to +397

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: Android CI jobs are configured with ubuntu-latest instead of the intended, more powerful ubuntu-24.04-16core runner, which may degrade test performance.
Severity: MEDIUM

Suggested Fix

Update the runs-on value for all Android jobs in .github/workflows/e2e-v2.yml and .github/workflows/native-tests.yml from ubuntu-latest to ubuntu-24.04-16core to match the performance requirements and the stated intent of the pull request.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: .github/workflows/e2e-v2.yml#L396-L397

Potential issue: The pull request aims to standardize CI runners, specifying
`ubuntu-24.04-16core` for Android jobs. However, the implementation in `e2e-v2.yml` and
`native-tests.yml` sets the runner to `ubuntu-latest`. The `ubuntu-latest` runner
provides 4 CPU cores, whereas the intended runner has 16. Since the Android jobs run
resource-intensive emulator tests using KVM, this discrepancy will likely lead to
significantly longer test execution times, potential timeouts, and increased test
flakiness. This represents a performance regression and misaligns with the stated goals
of the change.

Also affects:

  • .github/workflows/native-tests.yml:116~116
  • .github/workflows/e2e-v2.yml:61~61
  • .github/workflows/e2e-v2.yml:250~250

Did we get this right? ๐Ÿ‘ / ๐Ÿ‘Ž to inform future reviews.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I do agree with the bot here, it needs to be a specific version of Ubuntu, not ubuntu-latest.


steps:
- name: Check if platform is needed
Expand Down Expand Up @@ -472,7 +450,7 @@
cache-dependency-path: yarn.lock

- name: Setup asdf Node.js (Bitrise)
if: ${{ steps.platform-check.outputs.skip != 'true' && matrix.runner_provider == 'bitrise' }}
if: ${{ steps.platform-check.outputs.skip != 'true' && matrix.platform == 'ios' }}
run: |
asdf global nodejs system
corepack enable
Expand Down Expand Up @@ -546,7 +524,7 @@
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 All @@ -562,6 +540,6 @@
if: ${{ always() && steps.platform-check.outputs.skip != 'true' }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}-${{ matrix.runner_provider }}-logs
name: ${{ matrix.rn-version }}-${{ matrix.rn-architecture }}-${{ matrix.engine }}-${{ matrix.platform }}-${{ matrix.build-type }}-${{ matrix.ios-use-frameworks }}-logs
path: |
./dev-packages/e2e-tests/maestro-logs
32 changes: 3 additions & 29 deletions .github/workflows/native-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,10 @@
caller_ref: ${{ github.ref }}

test-ios:
name: ios on ${{matrix.runner_provider}}
runs-on: ${{ matrix.runner_provider == 'bitrise' && fromJSON('["bitrise_pool_name:tahoe"]') || fromJSON('["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]') }}
continue-on-error: ${{ matrix.runner_provider == 'bitrise' }}
name: ios
runs-on: ["bitrise_pool_name:tahoe"]
needs: [diff_check, detect-changes]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' && needs.detect-changes.outputs.needs_ios == 'true' }}
strategy:
fail-fast: false
matrix:
runner_provider: ["cirrus", "bitrise"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

Expand All @@ -54,44 +49,24 @@
cache-dependency-path: yarn.lock

- name: Setup asdf Node.js (Bitrise)
if: matrix.runner_provider == 'bitrise'
run: |
asdf global nodejs system
corepack enable

- name: Install SDK JS Dependencies
run: yarn install

- uses: actions/cache@v6
name: Cache Ruby
if: matrix.runner_provider != 'bitrise'
with:
path: |
~/.rbenv/versions
~/.rbenv/cache
key: ruby-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.ruby-version') }}

- uses: actions/cache@v6
name: Cache Ruby (Bitrise)
if: matrix.runner_provider == 'bitrise'
with:
path: ~/.asdf/installs/ruby
key: asdf-ruby-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.ruby-version') }}

- name: Install Ruby (Bitrise)
if: matrix.runner_provider == 'bitrise'
run: |
asdf install ruby 3.3.0
asdf local ruby 3.3.0

- uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1
if: matrix.runner_provider != 'bitrise'
with:
ruby-version: "3.3.0"
env:
# Disable rbenv to avoid .ruby-version conflicts
RBENV_VERSION: system

- name: Install CocoaPods
run: gem install cocoapods

Expand Down Expand Up @@ -138,8 +113,7 @@

test-android:
name: android
runs-on:
["ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04", "runner_group_id:10"]
runs-on: ubuntu-latest

Check warning on line 116 in .github/workflows/native-tests.yml

View check run for this annotation

@sentry/warden / warden: code-review

Native test-android uses ubuntu-latest instead of stated ubuntu-24.04-16core

Native `test-android` runs on `ubuntu-latest` instead of `ubuntu-24.04-16core`, which conflicts with the stated standardization requirements and may cause CI timeouts or OOM.
Comment thread
itaybre marked this conversation as resolved.
needs: [diff_check, detect-changes]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' && needs.detect-changes.outputs.needs_android == 'true' }}
steps:
Expand Down
10 changes: 2 additions & 8 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -327,20 +327,15 @@ jobs:
path: samples/react-native-macos/macos/*.log

test-ios:
name: Test ios production REV2 on ${{matrix.runner_provider}}
runs-on: ${{ matrix.runner_provider == 'bitrise' && fromJSON('["bitrise_pool_name:tahoe"]') || fromJSON('["ghcr.io/cirruslabs/macos-tahoe-xcode:26.2.0", "runner_group_id:10"]') }}
continue-on-error: ${{ matrix.runner_provider == 'bitrise' }}
name: Test ios production REV2
runs-on: ["bitrise_pool_name:tahoe"]
needs: [diff_check, detect-changes, build-ios]
if: >-
${{
needs.diff_check.outputs.skip_ci != 'true'
&& needs.detect-changes.outputs.needs_sample_react_native == 'true'
&& (needs.detect-changes.outputs.sample_react_native == 'true' || needs.detect-changes.outputs.needs_ios == 'true')
}}
strategy:
fail-fast: false
matrix:
runner_provider: ["cirrus", "bitrise"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

Expand Down Expand Up @@ -370,7 +365,6 @@ jobs:
cache-dependency-path: yarn.lock

- name: Setup asdf Node.js (Bitrise)
if: matrix.runner_provider == 'bitrise'
run: |
asdf global nodejs system
corepack enable
Expand Down
Loading