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