Skip to content

chore: ci tests

chore: ci tests #3

Workflow file for this run

name: Android Build and Test
on: [push, pull_request]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
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
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build the app
run: |
cd example/android
./gradlew assembleDebug
- name: Upload apk
uses: actions/upload-artifact@v2
with:
name: debug apk
path: example/android/app/build/outputs/apk/debug/app-debug.apk
test:
runs-on: macos-latest
needs: build
strategy:
matrix:
api-level: [24, 25, 29, 30, 31]
target: [default]
steps:
- name: Checkout the code
uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}-${{ hashFiles('**/buildSrc/**/*.kt') }}
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Run detekt
run: |
cd example/android
./gradlew detektCheck
- name: Run unit tests
run: |
cd example/android
./gradlew test --stacktrace
- 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()