Skip to content

ci: check if release app launches properly #854

ci: check if release app launches properly

ci: check if release app launches properly #854

Workflow file for this run

name: CI
on:
push:
branches: [master, rnupgrade]
pull_request:
branches: [master, rnupgrade]
workflow_dispatch:
jobs:
cancel_previous:
runs-on: ubuntu-latest
steps:
- uses: styfle/[email protected]
with:
workflow_id: ${{ github.event.workflow.id }}
build-and-test:
needs: cancel_previous
runs-on: 'ubuntu-latest'
steps:
# Workaround for corepack enable in node
# Source: (https://github.com/actions/setup-node/issues/899#issuecomment-1828798029)
- uses: actions/checkout@v2
- uses: actions/setup-node@v4
with:
node-version: 20
- run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
# End workaround
- name: Install
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
# Linter has to run after the build because it relies on TS types
- name: Lint
run: yarn lint
- name: Test
run: yarn test --coverage
run-e2e-ios:
needs: cancel_previous
runs-on: 'macos-13'
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 15.0.1
- name: Install applesimutils
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew tap wix/brew >/dev/null
HOMEBREW_NO_AUTO_UPDATE=1 brew install applesimutils >/dev/null
# Workaround for corepack enable in node
# Source: (https://github.com/actions/setup-node/issues/899#issuecomment-1828798029)
- uses: actions/checkout@v2
- uses: actions/setup-node@v4
with:
node-version: 20
- run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
# End workaround
- name: Bootstrap
run: yarn install && yarn example install && yarn example pods
- name: Bundle Build
run: yarn build
- name: Detox - Build
run: RCT_NO_LAUNCH_PACKAGER=1 yarn example build:ios
- name: Detox - Test
run: yarn example e2e:ios
run-e2e-android:
needs: cancel_previous
runs-on: 'macos-11' # This is important, linux cannot run the emulator graphically for e2e tests
strategy:
matrix:
api-level: [21]
profile: ['pixel_xl']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '11'
cache: 'gradle'
- name: Gradle cache
uses: actions/cache@v2
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@v2
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}-${{matrix.profile}}
- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
profile: ${{matrix.profile}}
name: Pixel_API_21_AOSP
target: default
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
# Workaround for corepack enable in node
# Source: (https://github.com/actions/setup-node/issues/899#issuecomment-1828798029)
- uses: actions/setup-node@v4
with:
node-version: 20
- run: corepack enable
- uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
# End workaround
- name: Bootstrap
run: yarn install && yarn example install # No need to run bootstrap here since we don't need cocoapods
- name: Bundle build
run: yarn build
- name: Detox - Build
run: RCT_NO_LAUNCH_PACKAGER=1 yarn example build:android
- name: Detox - Test
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
profile: ${{matrix.profile}}
avd-name: Pixel_API_21_AOSP
target: default
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: yarn example e2e:android