Devbox & CI Fixes #1329
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 | |
| 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 | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| - name: devbox installer | |
| uses: jetify-com/devbox-install-action@v0.14.0 | |
| with: | |
| enable-cache: 'true' | |
| - name: Nix GC (pre-build) | |
| run: | | |
| nix-collect-garbage -d || true | |
| du -sh /nix/store || true | |
| - name: build | |
| run: devbox run build | |
| run-e2e-ios: | |
| if: false | |
| 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: actions/checkout@v4 | |
| - name: Free Disk Space | |
| run: | | |
| sudo rm -rf /usr/share/dotnet | |
| sudo rm -rf /opt/ghc | |
| sudo rm -rf "/usr/local/share/boost" | |
| sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
| - uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: '26.1.1' | |
| - 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 E2E Tests | |
| env: | |
| DETOX_IOS_DEVICE: ${{ matrix.ios-device }} | |
| run: | | |
| set -euo pipefail | |
| devbox shell --omit-nix-env --command "devbox run test-ios" | |
| run-e2e-android: | |
| if: false | |
| continue-on-error: true | |
| runs-on: 'ubuntu-22.04' | |
| strategy: | |
| matrix: | |
| include: | |
| - 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 | |
| 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: Nix GC (pre-build) | |
| run: | | |
| nix-collect-garbage -d || true | |
| du -sh /nix/store || true | |
| - name: Disk space (start) | |
| run: | | |
| df -h | |
| df -h /nix/store || 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 E2E Tests | |
| env: | |
| DETOX_AVD: ${{ matrix.avd-name }} | |
| run: devbox run test-android |