Skip to content

Release v18.6.0

Release v18.6.0 #84

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Lint files
run: yarn lint
- name: Typecheck files
run: yarn typecheck
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Run unit tests
run: yarn test --maxWorkers=2 --coverage
build-library:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Build package
run: yarn prepare
build-android-e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Setup Java
uses: actions/setup-java@v4
with:
cache: 'gradle'
distribution: temurin
java-version: 17
- name: Write sitekeys to file
env:
EXAMPLE_ENV: ${{ secrets.EXAMPLE_ENV }}
run: echo "$EXAMPLE_ENV" >> example/.env
- name: Finalize Android SDK
run: |
/bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null"
- name: Build example for Android
env:
JAVA_OPTS: "-XX:MaxHeapSize=6g"
run: |
yarn run build:android
- name: Get device name
id: device
run: |
cd example
node -e "console.log('AVD_NAME=' + require('./.detoxrc').devices.emulator.device.avdName)" >> $GITHUB_OUTPUT
- name: Enable KVM group perms
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Detox build
run: |
cd example
yarn detox build --configuration android.emu.release
- name: E2E test for Android
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 31
arch: x86_64
avd-name: ${{ steps.device.outputs.AVD_NAME }}
script: cd example && yarn detox test --configuration android.emu.release --headless --record-logs all
build-ios-e2e:
runs-on: macos-14-xlarge
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup
uses: ./.github/actions/setup
- name: Select xcode version
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.4'
- name: Install macOS dependencies
run: |
brew tap wix/brew
brew install applesimutils
env:
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
- name: Write sitekeys to file
env:
EXAMPLE_ENV: ${{ secrets.EXAMPLE_ENV }}
run: echo "$EXAMPLE_ENV" >> example/.env
- name: Cache XCode Derived Data
uses: irgaly/xcode-cache@v1
with:
key: xcode-cache-deriveddata-${{ github.workflow }}-${{ github.sha }}
restore-keys: xcode-cache-deriveddata-${{ github.workflow }}-
- name: Cache Example CocoaPods
id: cache-example-cocoapods
uses: actions/cache@v3
with:
path: example/ios/Pods
key: ${{ runner.os }}-example-pods-${{ hashFiles('example/ios/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-example-pods-
- name: Install Example CocoaPods # Need to still run pod install even with cache
run: cd example/ios ; pod install
- name: Build example for iOS
run: |
yarn run build:ios
- name: Detox rebuild framework cache
run: |
cd example
yarn detox rebuild-framework-cache
- name: Detox build
run: |
cd example
yarn detox build --configuration ios.sim.release
- name: Detox test
# continue-on-error: true # iOS test is flaky, run locally for now
run: |
cd example
yarn detox test --configuration ios.sim.release --headless --record-logs all