|
8 | 8 | branches: [ master ] |
9 | 9 |
|
10 | 10 | jobs: |
11 | | - build: |
12 | | - runs-on: macos-13 |
| 11 | + build-android: |
| 12 | + runs-on: 4-core-ubuntu |
13 | 13 | strategy: |
14 | 14 | matrix: |
15 | 15 | api-level: [ 34 ] |
16 | 16 | steps: |
17 | 17 | - uses: actions/checkout@v3 |
18 | | - - name: Cocoapods cache |
19 | | - uses: actions/cache@v3 |
20 | | - id: cocoapods-cache |
21 | | - with: |
22 | | - path: | |
23 | | - ~/.cocoapods |
24 | | - ~/Library/Caches/CocoaPods |
25 | | - */build/cocoapods |
26 | | - */build/classes |
27 | | - key: cocoapods-cache |
28 | | - - name: Set up JDK |
29 | | - uses: actions/setup-java@v3 |
30 | | - with: |
31 | | - distribution: 'zulu' |
32 | | - java-version: '17' |
33 | | - cache: gradle |
34 | | - - name: Gradle cache |
35 | | - uses: gradle/gradle-build-action@v2 |
36 | | - - name: Grant execute permission for gradlew |
37 | | - run: chmod +x gradlew |
38 | | - - name: Install Firebase tools |
39 | | - run: npm install -g firebase-tools |
40 | | - - name: Start Firebase emulator |
41 | | - run: "firebase emulators:start --config=./test/firebase.json &" |
42 | | - - name: Run JS Tests |
43 | | - run: ./gradlew cleanTest jsTest |
44 | | - - name: Upload JS test artifact |
45 | | - uses: actions/upload-artifact@v3 |
46 | | - if: failure() |
47 | | - with: |
48 | | - name: "JS Test Report HTML" |
49 | | - path: | |
50 | | - **/build/reports/tests/jsTest/ |
51 | | - **/build/reports/tests/jsBrowserTest/ |
52 | | - **/build/reports/tests/jsNodeTest/ |
53 | | - - name: Run iOS Tests |
54 | | - run: ./gradlew cleanTest iosX64Test |
55 | | - - name: Upload iOS test artifact |
56 | | - uses: actions/upload-artifact@v3 |
57 | | - if: failure() |
58 | | - with: |
59 | | - name: "iOS Test Report HTML" |
60 | | - path: "**/build/reports/tests/iosX64Test/" |
| 18 | + - name: Enable KVM group perms |
| 19 | + run: | |
| 20 | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules |
| 21 | + sudo udevadm control --reload-rules |
| 22 | + sudo udevadm trigger --name-match=kvm |
| 23 | + - name: Setup test environment |
| 24 | + uses: ./.github/actions/setup_test_action |
61 | 25 | - name: AVD cache |
62 | 26 | uses: actions/cache@v3 |
63 | 27 | id: avd-cache |
64 | 28 | with: |
65 | 29 | path: | |
66 | 30 | ~/.android/avd/* |
67 | 31 | ~/.android/adb* |
68 | | - key: avd-${{ matrix.api-level }} |
| 32 | + key: avd-${{ matrix.api-level }}-${{ runner.os }}-${{ runner.arch }} |
69 | 33 | - name: create AVD and generate snapshot for caching |
70 | 34 | if: steps.avd-cache.outputs.cache-hit != 'true' |
71 | 35 | uses: reactivecircus/android-emulator-runner@v2 |
72 | 36 | with: |
73 | 37 | api-level: ${{ matrix.api-level }} |
74 | 38 | arch: x86_64 |
75 | 39 | target: google_apis |
| 40 | + avd-name: pixel6_API${{ matrix.api-level }} |
76 | 41 | force-avd-creation: false |
77 | 42 | emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none |
78 | 43 | disable-animations: false |
|
83 | 48 | api-level: ${{ matrix.api-level }} |
84 | 49 | arch: x86_64 |
85 | 50 | target: google_apis |
| 51 | + avd-name: pixel6_API${{ matrix.api-level }} |
86 | 52 | force-avd-creation: false |
87 | 53 | emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none |
88 | 54 | disable-animations: true |
|
93 | 59 | with: |
94 | 60 | name: "Android Test Report HTML" |
95 | 61 | path: "**/build/reports/androidTests/" |
| 62 | + - name: Upload Firebase Debug Log |
| 63 | + uses: actions/upload-artifact@v3 |
| 64 | + if: failure() |
| 65 | + with: |
| 66 | + name: "Firebase Debug Log" |
| 67 | + path: "**/firebase-debug.log" |
| 68 | + build-js: |
| 69 | + runs-on: ubuntu-latest |
| 70 | + steps: |
| 71 | + - uses: actions/checkout@v3 |
| 72 | + - name: Setup test environment |
| 73 | + uses: ./.github/actions/setup_test_action |
| 74 | + - name: Run JS Tests |
| 75 | + run: ./gradlew cleanTest jsTest |
| 76 | + - name: Upload JS test artifact |
| 77 | + uses: actions/upload-artifact@v3 |
| 78 | + if: failure() |
| 79 | + with: |
| 80 | + name: "JS Test Report HTML" |
| 81 | + path: | |
| 82 | + **/build/reports/tests/jsTest/ |
| 83 | + **/build/reports/tests/jsBrowserTest/ |
| 84 | + **/build/reports/tests/jsNodeTest/ |
| 85 | + - name: Upload Firebase Debug Log |
| 86 | + uses: actions/upload-artifact@v3 |
| 87 | + if: failure() |
| 88 | + with: |
| 89 | + name: "Firebase Debug Log" |
| 90 | + path: "**/firebase-debug.log" |
| 91 | + build-ios: |
| 92 | + runs-on: macos-13 |
| 93 | + steps: |
| 94 | + - uses: actions/checkout@v3 |
| 95 | + - name: Cocoapods cache |
| 96 | + uses: actions/cache@v3 |
| 97 | + id: cocoapods-cache |
| 98 | + with: |
| 99 | + path: | |
| 100 | + ~/.cocoapods |
| 101 | + ~/Library/Caches/CocoaPods |
| 102 | + */build/cocoapods |
| 103 | + */build/classes |
| 104 | + key: cocoapods-cache |
| 105 | + - name: Setup test environment |
| 106 | + uses: ./.github/actions/setup_test_action |
| 107 | + - name: Run iOS Tests |
| 108 | + run: ./gradlew cleanTest iosX64Test |
| 109 | + - name: Upload iOS test artifact |
| 110 | + uses: actions/upload-artifact@v3 |
| 111 | + if: failure() |
| 112 | + with: |
| 113 | + name: "iOS Test Report HTML" |
| 114 | + path: "**/build/reports/tests/iosX64Test/" |
| 115 | + - name: Upload Firebase Debug Log |
| 116 | + uses: actions/upload-artifact@v3 |
| 117 | + if: failure() |
| 118 | + with: |
| 119 | + name: "Firebase Debug Log" |
| 120 | + path: "**/firebase-debug.log" |
0 commit comments