big. huge. immaculate even. all to fall to a little red x #1306
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | ||
|
Check failure on line 1 in .github/workflows/ci.yml
|
||
| on: | ||
| push: | ||
| branches: [master, beta, ci2] | ||
| pull_request: | ||
| branches: [master, beta] | ||
| workflow_dispatch: | ||
| jobs: | ||
| cancel_previous: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: styfle/cancel-workflow-action@0.12.1 | ||
| with: | ||
| workflow_id: ${{ github.event.workflow.id }} | ||
| build-and-test: | ||
| needs: cancel_previous | ||
| runs-on: 'ubuntu-latest' | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| # Workaround for corepack enable in node | ||
| # Source: (https://github.com/actions/setup-node/issues/899#issuecomment-1828798029) | ||
| - name: devbox installer | ||
| uses: jetify-com/devbox-install-action@v0.14.0 | ||
| with: | ||
| enable-cache: 'true' | ||
| - name: build | ||
| run: devbox run build | ||
| run-e2e-ios: | ||
| runs-on: ['macos-15' ] | ||
| env: | ||
| YARN_ENABLE_HARDENED_MODE: 0 | ||
| XCODE_VERSION: '26.1.1' | ||
| strategy: | ||
| matrix: | ||
| include: | ||
| - name: ios-min | ||
| ios-device: "iPhone 14" | ||
| ios-runtime: "18.5" | ||
| - name: ios-latest | ||
| ios-device: "iPhone 17" | ||
| ios-runtime: "26.1" | ||
| steps: | ||
| - uses: maxim-lobanov/setup-xcode@v1 | ||
| with: | ||
| xcode-version: '26.1.1' | ||
| - uses: actions/checkout@v4 | ||
| - name: CocoaPods cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/Library/Caches/CocoaPods | ||
| key: cocoapods-${{ runner.os }}-${{ env.XCODE_VERSION }}-${{ hashFiles('examples/E2E/ios/Podfile.lock') }} | ||
| restore-keys: | | ||
| cocoapods-${{ runner.os }}-${{ env.XCODE_VERSION }}- | ||
| cocoapods-${{ runner.os }}- | ||
| - name: DerivedData cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/Library/Developer/Xcode/DerivedData | ||
| key: derived-${{ runner.os }}-${{ env.XCODE_VERSION }}-${{ hashFiles('examples/E2E/ios/Podfile.lock') }} | ||
| restore-keys: | | ||
| derived-${{ runner.os }}-${{ env.XCODE_VERSION }}- | ||
| derived-${{ runner.os }}- | ||
| - name: devbox installer | ||
| uses: jetify-com/devbox-install-action@v0.14.0 | ||
| with: | ||
| enable-cache: 'true' | ||
| # --omit-nix-env is important to use the macos system c toolchain instead of the nix toolchain | ||
| - name: iOS setup (simulators, pods) | ||
| env: | ||
| IOS_DEVICE_NAMES: ${{ matrix.ios-device }} | ||
| IOS_RUNTIME: ${{ matrix.ios-runtime }} | ||
| run: | | ||
| set -euo pipefail | ||
| devbox shell --omit-nix-env --command "devbox run setup-ios && yarn install && yarn e2e install && yarn e2e pods" | ||
| - name: iOS build | ||
| run: | | ||
| set -euo pipefail | ||
| devbox shell --omit-nix-env --command "yarn build && yarn e2e build:ios" | ||
| - name: iOS E2E Tests | ||
| env: | ||
| DETOX_IOS_DEVICE: ${{ matrix.ios-device }} | ||
| run: | | ||
| set -euo pipefail | ||
| devbox shell --omit-nix-env --command "DETOX_IOS_DEVICE='${{ matrix.ios-device }}' yarn e2e test:ios" | ||
| run-e2e-android: | ||
| runs-on: 'ubuntu-22.04' | ||
| env: | ||
| # Default to both minsdk and latest; override ANDROID_MATRIX env to narrow/expand if needed. | ||
| ANDROID_MATRIX: > | ||
| [ | ||
| {"name":"android-min","avd-name":"pixel_API21_x86_64","start-script":"start-android-minsdk"}, | ||
| {"name":"android-latest","avd-name":"medium_phone_API33_x86_64","start-script":"start-android-latest"} | ||
| ] | ||
| strategy: | ||
| matrix: | ||
| include: ${{ fromJson(env.ANDROID_MATRIX) }} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Yarn cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/.cache/yarn | ||
| .yarn/cache | ||
| key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | ||
| restore-keys: | | ||
| yarn-${{ runner.os }}- | ||
| - name: devbox installer | ||
| uses: jetify-com/devbox-install-action@v0.14.0 | ||
| with: | ||
| enable-cache: 'true' | ||
| - name: Gradle cache | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| ~/.gradle/caches | ||
| ~/.gradle/wrapper | ||
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }} | ||
| - name: AVD cache | ||
| uses: actions/cache@v4 | ||
| id: avd-cache | ||
| with: | ||
| path: | | ||
| ~/.android/avd/* | ||
| ~/.android/adb* | ||
| key: avd-${{ matrix.avd-name }} | ||
| - name: Android setup (AVD + deps) | ||
| env: | ||
| DETOX_AVD: ${{ matrix.avd-name }} | ||
| EMU_HEADLESS: "1" | ||
| AVD_FLAVOR: ${{ startsWith(matrix.avd-name, 'pixel') && 'minsdk' || 'latest' }} | ||
| run: | | ||
| set -euo pipefail | ||
| devbox run ${{ matrix.start-script }} | ||
| devbox run setup-android | ||
| yarn install | ||
| yarn e2e install | ||
| - name: Android build | ||
| run: | | ||
| set -euo pipefail | ||
| devbox run setup-android | ||
| yarn build | ||
| yarn e2e build:android | ||
| - name: Android E2E Tests | ||
| env: | ||
| DETOX_AVD: ${{ matrix.avd-name }} | ||
| run: devbox run test-android | ||