Skip to content

chore: ci tests

chore: ci tests #10

Workflow file for this run

name: Android Build and Test
on:
pull_request:
types: [opened, reopened ]
push:
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
android-build-unit-test:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Setup node 16
uses: actions/setup-node@v3
with:
node-version: '16'
- name: Install dependencies
run: |
npm install
cd example
npm install
- uses: actions/cache@v2
name: Cache node_modules
with:
path: example/node_modules
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
restore-keys: |
${{ runner.os }}-nodeModules-
- uses: actions/cache@v2
name: Cache outter node_modules
with:
path: node_modules
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
restore-keys: |
${{ runner.os }}-outterNodeModules-
- uses: actions/cache@v2
name: Cache Gradle dependencies
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
- name: Run unit tests
run: |
cd example/android
./gradlew test --stacktrace
- name: Build APK
run: |
npm run prepack
cd example/android
./gradlew assembleRelease
mv app/build/outputs/apk/release/app-release.apk app-release-${{ github.sha }}.apk
ls
pwd
echo ${{ github.workspace }}
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: app-release-${{ github.sha }}.apk
path: example/android/app-release-${{ github.sha }}.apk
android-test:
runs-on: macos-latest
needs: android-build-unit-test
strategy:
matrix:
api-level: [24, 25, 29, 30, 31]
target: [default]
steps:
- name: Checkout the code
uses: actions/checkout@v2
- name: Setup node 16
uses: actions/setup-node@v3
with:
node-version: '16'
- uses: actions/cache@v2
name: Cache node_modules
with:
path: example/node_modules
key: ${{ runner.os }}-nodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
restore-keys: |
${{ runner.os }}-nodeModules-
- uses: actions/cache@v2
name: Cache outter node_modules
with:
path: node_modules
key: ${{ runner.os }}-outterNodeModules-${{ hashFiles('package-lock.json') }}-${{ hashFiles('package.json') }}
restore-keys: |
${{ runner.os }}-outterNodeModules-
- uses: actions/cache@v2
name: Cache Gradle dependencies
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 11
- name: Instrumentation Tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
target: ${{ matrix.target }}
arch: x86
profile: Nexus 6
script: |
cd example/android
./gradlew connectedCheck --stacktrace
- name: Upload Reports
uses: actions/upload-artifact@v2
with:
name: Test-Reports
path: example/android/app/build/reports
if: always()