1name: Android Unit Tests 2 3on: 4 workflow_dispatch: {} 5 push: 6 branches: [master] 7 paths: 8 - .github/workflows/android-unit-tests.yml 9 - android/** 10 - fastlane/** 11 - packages/**/android/** 12 - tools/** 13 - yarn.lock 14 pull_request: 15 paths: 16 - .github/workflows/android-unit-tests.yml 17 - android/** 18 - fastlane/** 19 - packages/**/android/** 20 - tools/** 21 - yarn.lock 22 23jobs: 24 test: 25 runs-on: ubuntu-18.04 26 steps: 27 - name: Check out repository 28 uses: actions/checkout@v2 29 with: 30 submodules: true 31 - name: Get yarn cache directory path 32 id: yarn-cache-dir-path 33 run: echo "::set-output name=dir::$(yarn cache dir)" 34 - uses: actions/cache@v2 35 with: 36 path: ${{ steps.yarn-cache-dir-path.outputs.dir }} 37 key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }} 38 restore-keys: | 39 ${{ runner.os }}-yarn- 40 - run: yarn install --frozen-lockfile 41 - uses: actions/cache@v2 42 with: 43 path: ~/.gradle/caches 44 key: ${{ runner.os }}-gradle-${{ hashFiles('android/*.gradle*') }} 45 restore-keys: | 46 ${{ runner.os }}-gradle- 47 - uses: actions/cache@v2 48 id: cache-android-ndk 49 with: 50 path: /usr/local/lib/android/sdk/ndk/19.2.5345600/ 51 key: ${{ runner.os }}-ndk-19.2.5345600 52 restore-keys: | 53 ${{ runner.os }}-ndk- 54 - name: Install NDK 55 if: steps.cache-android-ndk.outputs.cache-hit != 'true' 56 run: | 57 sudo $ANDROID_HOME/tools/bin/sdkmanager --install "ndk;19.2.5345600" 58 - run: echo "$(pwd)/bin" >> $GITHUB_PATH 59 - name: Run native Android unit tests 60 env: 61 ANDROID_NDK_HOME: /usr/local/lib/android/sdk/ndk/19.2.5345600/ 62 run: expotools native-unit-tests --platform android 63 - name: Save test results 64 if: always() 65 uses: actions/upload-artifact@v2 66 with: 67 name: test-results 68 path: packages/**/build/test-results/**/*xml 69 - name: Run Spotless lint check 70 env: 71 ANDROID_NDK_HOME: /usr/local/lib/android/sdk/ndk/19.2.5345600/ 72 working-directory: android 73 run: ./gradlew spotlessCheck || echo '::error Spotless lint failed. Run `./gradlew spotlessApply` to automatically fix formatting.' 74