Merge pull request #1878 from kulak91/android-tests-ci #999
This file contains 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: | |
pull_request: | |
push: | |
branches: master | |
jobs: | |
ci-check: | |
runs-on: ubuntu-22.04 | |
name: JavaScript tests | |
strategy: | |
matrix: | |
node-version: ['18.x', '20.x', '22.x'] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set Node.js version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: actions/cache@v3 | |
with: | |
path: 'node_modules' | |
key: ${{ runner.os }}-node-${{ matrix.node-version }}-modules-${{ hashFiles('**/yarn.lock') }} | |
- run: yarn | |
- run: yarn ci:check | |
- name: Gradle Wrapper Validation | |
uses: gradle/[email protected] | |
- name: Check docs build | |
run: cd docs-website && yarn install && cd .. && yarn docs:build | |
ios: | |
runs-on: macos-14 | |
name: iOS tests | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set Node.js version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 22.x | |
- name: Set Xcode version | |
uses: maxim-lobanov/[email protected] | |
with: | |
xcode-version: 16.1 | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1 | |
- name: cache node_modules | |
uses: actions/cache@v3 | |
with: | |
path: 'node_modules' | |
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} | |
- run: yarn | |
- name: cache Pods | |
uses: actions/cache@v3 | |
id: pods-cache | |
with: | |
path: native/iosTest/Pods | |
key: ${{ runner.os }}-pods-cache-${{ hashFiles('**/Podfile.lock') }} | |
- run: bundle install | |
- name: 'pod install' | |
if: true # steps.pods-cache.outputs.cache-hit != 'true' | |
run: yarn cocoapods | |
- run: yarn test:ios | |
android: | |
runs-on: ubuntu-24.04 | |
name: Android tests | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Enable KVM | |
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 | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'adopt' | |
java-version: '17' | |
- name: Set Node.js version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22.x | |
- uses: actions/cache@v4 | |
with: | |
path: 'node_modules' | |
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} | |
- run: yarn | |
- run: yarn dev:native & | |
- uses: gradle/actions/setup-gradle@v3 | |
# See: https://github.com/android/compose-samples/actions/runs/27015993/workflow for ideas for caching | |
- name: run tests | |
uses: reactivecircus/[email protected] | |
with: | |
api-level: 29 | |
working-directory: ./native/androidTest | |
script: ./gradlew connectedAndroidTest | |
- run: yarn ktlint | |
windows: | |
# FIXME: Windows port is unmaintained. If you're interested in sponsoring continued maintenance, | |
# please email me! | |
if: false | |
runs-on: windows-2022 | |
name: Windows tests | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set Node.js version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 22.x | |
- uses: actions/cache@v3 | |
with: | |
path: 'node_modules' | |
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} | |
- run: yarn --network-timeout 100000 | |
# FIXME: concurrently seems broken on windows | |
# - run: yarn ci | |
- run: yarn test | |
- run: yarn eslint | |
- run: yarn flow | |
# FIXME: TS broken on Windows? | |
# - run: yarn test:typescript | |
# Build WatermelonTester and run in background | |
- run: yarn test:windows | |
# Give it some time to bundle | |
- run: sleep 90 | |
# Start E2E runner to capture integration test results | |
- run: cd native/windowsE2E && yarn | |
- run: yarn test:windows:ci |