Skip to content
Merged
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
2 changes: 1 addition & 1 deletion .github/workflows/e2e-ios-templateapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
# Building the app needs Xcode, so it stays on a macOS runner. The E2E run
# itself drives a remote simulator via sim-remote, so it runs on Linux.
build:
runs-on: macos-26-large
runs-on: macos-26
strategy:
fail-fast: false
matrix:
Expand Down
82 changes: 82 additions & 0 deletions .github/workflows/e2e-maestro.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: E2E Maestro

# A trimmed-down test-all: builds only what the two iOS Maestro E2E flows
# need (Apple prebuilds, the RNTester app, the npm package) and runs them.
# No Android, SPM, unit-test, or lint jobs.

on:
workflow_dispatch:

permissions:
contents: read

jobs:
prebuild_apple_dependencies:
uses: ./.github/workflows/prebuild-ios-dependencies.yml
secrets: inherit

prebuild_react_native_core:
needs: [prebuild_apple_dependencies]
uses: ./.github/workflows/prebuild-ios-core.yml
with:
use-hermes-prebuilt: ${{ !endsWith(github.ref_name, '-stable') }}
secrets: inherit

# Builds RNTester and uploads the RNTesterApp-NewArch-<flavor> artifacts
# consumed by e2e-ios-rntester.yml (run-unit-tests defaults to false).
build_rntester_app:
runs-on: macos-15
needs: [prebuild_apple_dependencies, prebuild_react_native_core]
strategy:
fail-fast: false
matrix:
flavor: [Debug, Release]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build RNTester
uses: ./.github/actions/test-ios-rntester
with:
use-prebuilds: true
flavor: ${{ matrix.flavor }}

# Builds the react-native .tgz (dry-run) consumed by e2e-ios-templateapp.yml.
build_npm_package:
runs-on: ubuntu-latest
needs: [prebuild_apple_dependencies, prebuild_react_native_core]
container:
image: reactnativecommunity/react-native-android:latest
env:
TERM: 'dumb'
# Set the encoding to resolve a known character encoding issue with decompressing tar.gz files in containers
# via Gradle: https://github.com/gradle/gradle/issues/23391#issuecomment-1878979127
LC_ALL: C.UTF8
GRADLE_OPTS: '-Dorg.gradle.daemon=false'
REACT_NATIVE_DOWNLOADS_DIR: /opt/react-native-downloads
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Build NPM Package
uses: ./.github/actions/build-npm-package
with:
release-type: dry-run
gradle-cache-encryption-key: ${{ secrets.GRADLE_CACHE_ENCRYPTION_KEY }}

test_e2e_ios_rntester:
needs: build_rntester_app
uses: ./.github/workflows/e2e-ios-rntester.yml
with:
fail-on-error: true
secrets: inherit

test_e2e_ios_templateapp:
needs:
[
build_npm_package,
prebuild_apple_dependencies,
prebuild_react_native_core,
]
uses: ./.github/workflows/e2e-ios-templateapp.yml
with:
fail-on-error: true
secrets: inherit