Skip to content

Remove unnecessary comment #27

Remove unnecessary comment

Remove unnecessary comment #27

name: Test Suite on React Native nightly build
on:
workflow_dispatch: {}
schedule:
- cron: '0 10 * * SAT' # 10:00 AM UTC time every Saturday
push:
branches: [main]
paths:
- .github/workflows/test-suite-nightly.yml
- tools/src/commands/SetupReactNativeNightly.ts
pull_request:
paths:
- .github/workflows/test-suite-nightly.yml
- tools/src/commands/SetupReactNativeNightly.ts
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
ios-build:
runs-on: macos-15
steps:
- name: 👀 Checkout
uses: actions/checkout@v5
with:
submodules: true
- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest
- name: 🔨 Switch to Xcode 26.0
run: sudo xcode-select --switch /Applications/Xcode_26.0.app
- name: 🍺 Install required tools
run: |
brew install watchman || true
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 💎 Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: 3.2.2
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
with:
yarn-tools: 'true'
- name: ⚙️ Setup react-native nightly
run: et setup-react-native-nightly
- name: ⚛️ Display React Native config
run: yarn expo-modules-autolinking react-native-config --platform ios
working-directory: apps/bare-expo
- name: 🌳 Display pod environment
run: pod env
working-directory: apps/bare-expo/ios
- name: 🥥 Update RCT-Folly and SocketRocket pods in apps/bare-expo/ios
run: pod update RCT-Folly SocketRocket --no-repo-update
working-directory: apps/bare-expo/ios
- name: 🍏 Build iOS Project
run: ./scripts/start-ios-e2e-test.ts --build
working-directory: apps/bare-expo
env:
EXPO_DEBUG: 1
NODE_ENV: production
- name: 📸 Upload builds
uses: actions/upload-artifact@v4
with:
name: bare-expo-ios-builds
path: apps/bare-expo/ios/build/BareExpo.app
- name: 🔔 Notify on Slack
uses: ./.github/actions/slack-notify
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main')
with:
webhook: ${{ secrets.slack_webhook_ios }}
channel: '#expo-ios'
author_name: Test Suite Nightly (iOS)
ios-test:
needs: ios-build
runs-on: macos-15
steps:
- name: 👀 Checkout
uses: actions/checkout@v5
with:
submodules: true
- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest
- name: 🔨 Switch to Xcode 26.0
run: sudo xcode-select --switch /Applications/Xcode_26.0.app
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 🌠 Download builds
uses: actions/download-artifact@v4
with:
name: bare-expo-ios-builds
path: apps/bare-expo/ios/build/BareExpo.app
- name: 🧹 Cleanup unused simulator runtimes
run: |
xcrun simctl list devices -j | jq -r '.devices | to_entries[] | select(.key | contains("iOS") | not) | .value[].udid' | xargs -r -n1 xcrun simctl delete
xcrun simctl list devices --json
xcrun simctl erase all
xcrun simctl shutdown all
sudo xcodebuild -runFirstLaunch
- name: 🍺 Install Maestro
run: |
curl -Ls "https://get.maestro.mobile.dev" | bash
echo "${HOME}/.maestro/bin" >> $GITHUB_PATH
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🍏 Run iOS tests
run: ./scripts/start-ios-e2e-test.ts --test
working-directory: apps/bare-expo
- name: 📸 Store testing artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: bare-expo-artifacts-ios
path: |
~/.maestro/tests/**/*
~/Library/Logs/maestro/**/*
overwrite: true
- name: 🔔 Notify on Slack
uses: ./.github/actions/slack-notify
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main')
with:
webhook: ${{ secrets.slack_webhook_ios }}
channel: '#expo-ios'
author_name: Test Suite Nightly (iOS)
android-build:
runs-on: ubuntu-24.04
env:
ORG_GRADLE_PROJECT_reactNativeArchitectures: x86_64
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx4096m -XX:MaxMetaspaceSize=4096m"
steps:
- name: 👀 Checkout
uses: actions/checkout@v5
with:
submodules: true
- name: 🧹 Cleanup GitHub Linux runner disk space
uses: ./.github/actions/cleanup-linux-disk-space
- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest
- name: 🔨 Use JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: ➕ Add `bin` to GITHUB_PATH
run: echo "$(pwd)/bin" >> $GITHUB_PATH
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
with:
gradle: 'true'
yarn-tools: 'true'
- name: ⚙️ Setup react-native nightly
run: et setup-react-native-nightly
- name: ⚛️ Display React Native config
run: yarn expo-modules-autolinking react-native-config --platform android
working-directory: apps/bare-expo
- name: 🤖 Gradle prebuild for Android project (workaround to fix build error)
run: ./gradlew preBuild
working-directory: apps/bare-expo/android
- name: 🤖 Build Android project
run: ./scripts/start-android-e2e-test.ts --build
working-directory: apps/bare-expo
- name: 📸 Upload builds
uses: actions/upload-artifact@v4
with:
name: bare-expo-android-builds
path: apps/bare-expo/android/app/build/outputs/apk
- name: 🔔 Notify on Slack
uses: ./.github/actions/slack-notify
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main')
with:
webhook: ${{ secrets.slack_webhook_android }}
channel: '#expo-android'
author_name: Test Suite Nightly (Android)
android-test:
needs: android-build
runs-on: ubuntu-24.04
strategy:
matrix:
api-level: [36]
steps:
- name: 👀 Checkout
uses: actions/checkout@v4
- name: 🏗️ Setup Bun
uses: oven-sh/setup-bun@v2
with:
# Version `1.x` fails due to https://github.com/oven-sh/setup-bun/issues/37
# TODO(cedric): swap `latest` back once the issue is resolved
bun-version: latest
- name: 🌠 Download builds
uses: actions/download-artifact@v4
with:
name: bare-expo-android-builds
path: apps/bare-expo/android/app/build/outputs/apk
- name: 🍺 Install Maestro
run: |
curl -Ls "https://get.maestro.mobile.dev" | bash
echo "${HOME}/.maestro/bin" >> $GITHUB_PATH
- name: ♻️ Restore caches
uses: ./.github/actions/expo-caches
id: expo-caches
with:
yarn-workspace: 'true'
- name: 🧶 Install node modules in root dir
if: steps.expo-caches.outputs.yarn-workspace-hit != 'true'
run: yarn install --frozen-lockfile
- name: 🤖 Run Android tests
uses: ./.github/actions/use-android-emulator
with:
avd-api: ${{ matrix.api-level }}
avd-name: avd-${{ matrix.api-level }}
script: ./scripts/start-android-e2e-test.ts --test
working-directory: ./apps/bare-expo
- name: 📸 Store testing artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: bare-expo-artifacts-android
path: |
~/.maestro/tests/**/*
~/Library/Logs/maestro/**/*
overwrite: true
- name: 🔔 Notify on Slack
uses: ./.github/actions/slack-notify
if: failure() && (github.event_name == 'schedule' || github.event.ref == 'refs/heads/main')
webhook: ${{ secrets.slack_webhook_android }}

Check failure on line 250 in .github/workflows/test-suite-nightly.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/test-suite-nightly.yml

Invalid workflow file

You have an error in your yaml syntax on line 250
channel: '#expo-android'
author_name: Test Suite Nightly (Android)