123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- name: CI
- on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
- jobs:
- lint:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - 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@v3
- - 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@v3
- - name: Setup
- uses: ./.github/actions/setup
- - name: Build package
- run: yarn prepare
- build-android:
- runs-on: ubuntu-latest
- env:
- TURBO_CACHE_DIR: .turbo/android
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Setup
- uses: ./.github/actions/setup
- - name: Cache turborepo for Android
- uses: actions/cache@v3
- with:
- path: ${{ env.TURBO_CACHE_DIR }}
- key: ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-turborepo-android-
- - name: Check turborepo cache for Android
- run: |
- TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:android').cache.status")
- if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
- echo "turbo_cache_hit=1" >> $GITHUB_ENV
- fi
- - name: Install JDK
- if: env.turbo_cache_hit != 1
- uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: '17'
- - name: Finalize Android SDK
- if: env.turbo_cache_hit != 1
- run: |
- /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null"
- - name: Cache Gradle
- if: env.turbo_cache_hit != 1
- uses: actions/cache@v3
- with:
- path: |
- ~/.gradle/wrapper
- ~/.gradle/caches
- key: ${{ runner.os }}-gradle-${{ hashFiles('example/android/gradle/wrapper/gradle-wrapper.properties') }}
- restore-keys: |
- ${{ runner.os }}-gradle-
- - name: Build example for Android
- env:
- JAVA_OPTS: "-XX:MaxHeapSize=6g"
- run: |
- yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}"
- build-ios:
- runs-on: macos-14
- env:
- TURBO_CACHE_DIR: .turbo/ios
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Setup
- uses: ./.github/actions/setup
- - name: Cache turborepo for iOS
- uses: actions/cache@v3
- with:
- path: ${{ env.TURBO_CACHE_DIR }}
- key: ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-turborepo-ios-
- - name: Check turborepo cache for iOS
- run: |
- TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:ios').cache.status")
- if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
- echo "turbo_cache_hit=1" >> $GITHUB_ENV
- fi
- - name: Cache cocoapods
- if: env.turbo_cache_hit != 1
- id: cocoapods-cache
- uses: actions/cache@v3
- with:
- path: |
- **/ios/Pods
- key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }}
- restore-keys: |
- ${{ runner.os }}-cocoapods-
- - name: Install cocoapods
- if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true'
- run: |
- cd example/ios
- pod install
- env:
- NO_FLIPPER: 1
- - name: Build example for iOS
- run: |
- yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"
|