88 branches : [ master ]
99
1010jobs :
11- jobEmulatorMatrixSetup :
11+ lint :
12+ runs-on : ubuntu-latest
13+ steps :
14+ - uses : actions/checkout@v4
15+ - name : Set up JDK
16+ uses : actions/setup-java@v4
17+ with :
18+ distribution : ' zulu'
19+ java-version : ' 17'
20+ - name : ktLint
21+ run : ./gradlew lintKotlin
22+ - name : run apiCheck
23+ run : ./gradlew apiCheck
24+ jobMatrixSetup :
1225 runs-on : ubuntu-latest
1326 outputs :
1427 emulator_jobs_matrix : ${{ steps.dataStep.outputs.emulator_jobs_matrix }}
28+ ios_test_jobs_matrix : ${{ steps.dataStep.outputs.ios_test_jobs_matrix }}
29+ js_test_jobs_matrix : ${{ steps.dataStep.outputs.js_test_jobs_matrix }}
30+ jvm_test_jobs_matrix : ${{ steps.dataStep.outputs.jvm_test_jobs_matrix }}
1531 steps :
1632 - uses : actions/checkout@v4
1733 - name : Set up JDK
18- uses : actions/setup-java@v3
34+ uses : actions/setup-java@v4
1935 with :
2036 distribution : ' zulu'
2137 java-version : ' 17'
2238 cache : gradle
2339 - name : Prepare the matrix JSON
24- run : ./gradlew ciEmulatorJobsMatrixSetup
40+ run : ./gradlew ciJobsMatrixSetup
2541 - id : dataStep
26- run : echo "emulator_jobs_matrix=$(jq -c . < ./build/emulator_jobs_matrix.json)" >> $GITHUB_OUTPUT
42+ run : |
43+ echo "
44+ emulator_jobs_matrix=$(jq -c . < ./build/emulator_jobs_matrix.json)
45+ ios_test_jobs_matrix=$(jq -c . < ./build/ios_test_jobs_matrix.json)
46+ js_test_jobs_matrix=$(jq -c . < ./build/js_test_jobs_matrix.json)
47+ jvm_test_jobs_matrix=$(jq -c . < ./build/jvm_test_jobs_matrix.json)
48+ " >> $GITHUB_OUTPUT
2749 build-android :
28- needs : jobEmulatorMatrixSetup
50+ needs : jobMatrixSetup
2951 runs-on : ubuntu-latest
3052 strategy :
3153 fail-fast : false
32- matrix : ${{ fromJson(needs.jobEmulatorMatrixSetup .outputs.emulator_jobs_matrix) }}
54+ matrix : ${{ fromJson(needs.jobMatrixSetup .outputs.emulator_jobs_matrix) }}
3355 steps :
34- - uses : actions/checkout@v3
56+ - uses : actions/checkout@v4
3557 - name : Enable KVM group perms
3658 run : |
3759 echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
3860 sudo udevadm control --reload-rules
3961 sudo udevadm trigger --name-match=kvm
4062 - name : Setup test environment
4163 uses : ./.github/actions/setup_test_action
64+ - name : Set Artifact Name
65+ run : |
66+ echo "ARCHIVE_KEY=$(echo ${{ matrix.gradle_tasks }} | cut -d: -f2)" >> $GITHUB_ENV
4267 - name : Apply Android licenses
4368 run : ./gradlew ciSdkManagerLicenses
4469 - name : Run Android Instrumented Tests
4570 run : ./gradlew ${{ matrix.gradle_tasks }}
4671 - name : Upload Android test artifact
47- uses : actions/upload-artifact@v3
72+ uses : actions/upload-artifact@v4
4873 if : failure()
4974 with :
50- name : " Android Test Report HTML"
75+ name : Android ${{ env.ARCHIVE_KEY }} Test Report HTML
5176 path : " **/build/reports/androidTests/"
5277 - name : Upload Firebase Debug Log
53- uses : actions/upload-artifact@v3
78+ uses : actions/upload-artifact@v4
5479 if : failure()
5580 with :
56- name : " Firebase Debug Log"
81+ name : Android ${{ env.ARCHIVE_KEY }} Firebase Debug Log
5782 path : " **/firebase-debug.log"
5883 build-js :
84+ needs : jobMatrixSetup
5985 runs-on : ubuntu-latest
86+ strategy :
87+ fail-fast : false
88+ matrix : ${{ fromJson(needs.jobMatrixSetup.outputs.js_test_jobs_matrix) }}
6089 steps :
61- - uses : actions/checkout@v3
90+ - uses : actions/checkout@v4
6291 - name : Setup test environment
6392 uses : ./.github/actions/setup_test_action
6493 timeout-minutes : 10
94+ - name : Set Artifact Name
95+ run : |
96+ echo "ARCHIVE_KEY=$(echo ${{ matrix.gradle_tasks }} | cut -d: -f2)" >> $GITHUB_ENV
6597 - name : Run JS Tests
66- run : ./gradlew cleanTest jsTest
98+ run : ./gradlew ${{ matrix.gradle_tasks }}
6799 - name : Upload JS test artifact
68- uses : actions/upload-artifact@v3
100+ uses : actions/upload-artifact@v4
69101 if : failure()
70102 with :
71- name : " JS Test Report HTML"
103+ name : JS ${{ env.ARCHIVE_KEY }} Test Report HTML
72104 path : |
73105 **/build/reports/tests/jsTest/
74106 **/build/reports/tests/jsBrowserTest/
75107 **/build/reports/tests/jsNodeTest/
76108 - name : Upload Firebase Debug Log
77- uses : actions/upload-artifact@v3
109+ uses : actions/upload-artifact@v4
78110 if : failure()
79111 with :
80- name : " Firebase Debug Log"
112+ name : JS ${{ env.ARCHIVE_KEY }} Firebase Debug Log
81113 path : " **/firebase-debug.log"
82114 build-ios :
115+ needs : jobMatrixSetup
83116 runs-on : macos-latest
117+ strategy :
118+ fail-fast : false
119+ matrix : ${{ fromJson(needs.jobMatrixSetup.outputs.ios_test_jobs_matrix) }}
84120 steps :
85- - uses : actions/checkout@v3
121+ - uses : actions/checkout@v4
86122 - name : Cocoapods cache
87- uses : actions/cache@v3
123+ uses : actions/cache@v4
88124 with :
89125 path : |
90126 ~/.cocoapods
@@ -94,17 +130,49 @@ jobs:
94130 key : cocoapods-cache-v2
95131 - name : Setup test environment
96132 uses : ./.github/actions/setup_test_action
133+ - name : Set Artifact Name
134+ run : |
135+ echo "ARCHIVE_KEY=$(echo ${{ matrix.gradle_tasks }} | cut -d: -f2)" >> $GITHUB_ENV
97136 - name : Run iOS Tests
98- run : ./gradlew cleanTest iosX64Test
137+ run : ./gradlew ${{ matrix.gradle_tasks }}
99138 - name : Upload iOS test artifact
100- uses : actions/upload-artifact@v3
139+ uses : actions/upload-artifact@v4
101140 if : failure()
102141 with :
103- name : " iOS Test Report HTML"
104- path : " **/build/reports/tests/iosX64Test /"
142+ name : iOS ${{ env.ARCHIVE_KEY }} Test Report HTML
143+ path : " **/build/reports/tests/iosSimulatorArm64Test /"
105144 - name : Upload Firebase Debug Log
106- uses : actions/upload-artifact@v3
145+ uses : actions/upload-artifact@v4
107146 if : failure()
108147 with :
109- name : " Firebase Debug Log"
148+ name : iOS ${{ env.ARCHIVE_KEY }} Firebase Debug Log
110149 path : " **/firebase-debug.log"
150+ build-jvm :
151+ needs : jobMatrixSetup
152+ runs-on : ubuntu-latest
153+ strategy :
154+ fail-fast : false
155+ matrix : ${{ fromJson(needs.jobMatrixSetup.outputs.jvm_test_jobs_matrix) }}
156+ steps :
157+ - uses : actions/checkout@v4
158+ - name : Setup test environment
159+ uses : ./.github/actions/setup_test_action
160+ timeout-minutes : 10
161+ - name : Set Artifact Name
162+ run : |
163+ echo "ARCHIVE_KEY=$(echo ${{ matrix.gradle_tasks }} | cut -d: -f2)" >> $GITHUB_ENV
164+ - name : Run JVM Tests
165+ run : ./gradlew ${{ matrix.gradle_tasks }}
166+ - name : Upload JVM test artifact
167+ uses : actions/upload-artifact@v4
168+ if : failure()
169+ with :
170+ name : JVM ${{ env.ARCHIVE_KEY }} Test Report HTML
171+ path : |
172+ **/build/reports/tests/jvmTest/
173+ - name : Upload Firebase Debug Log
174+ uses : actions/upload-artifact@v4
175+ if : failure()
176+ with :
177+ name : JVM ${{ env.ARCHIVE_KEY }} Firebase Debug Log
178+ path : " **/firebase-debug.log"
0 commit comments