11
11
type : boolean
12
12
pull_request :
13
13
paths :
14
- - buildSrc/**
15
- - firebase-common/**
16
- - firebase-dataconnect/**
17
14
- .github/workflows/dataconnect.yml
15
+ - ' firebase-dataconnect/**'
16
+ - ' !firebase-dataconnect/demo/**'
17
+ - ' !firebase-dataconnect/scripts/**'
18
+ - ' !firebase-dataconnect/**/*.md'
19
+ - ' !firebase-dataconnect/**/*.txt'
18
20
schedule :
19
21
- cron : ' 0 11 * * *' # Run nightly at 11am UTC (3am Pacific, 6am Eastern)
20
22
23
25
FDC_ANDROID_EMULATOR_API_LEVEL : ${{ inputs.androidEmulatorApiLevel || '34' }}
24
26
FDC_NODEJS_VERSION : ${{ inputs.nodeJsVersion || '20' }}
25
27
FDC_FIREBASE_TOOLS_VERSION : ${{ inputs.firebaseToolsVersion || '13.29.1' }}
26
- FDC_FIREBASE_TOOLS_DIR : ${{ github.workspace }}/firebase-tools
27
- FDC_FIREBASE_COMMAND : ${{ github.workspace }}/firebase-tools/node_modules/.bin/firebase
28
+ FDC_FIREBASE_TOOLS_DIR : ${{ runner.temp }}/firebase-tools
29
+ FDC_FIREBASE_COMMAND : ${{ runner.temp }}/firebase-tools/node_modules/.bin/firebase
28
30
29
31
concurrency :
30
32
group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
85
87
${{ env.FDC_FIREBASE_COMMAND }} --version
86
88
./gradlew --version
87
89
90
+ - name : Restore Gradle cache
91
+ uses : actions/cache/restore@v4
92
+ if : github.event_name != 'schedule'
93
+ with :
94
+ path : |
95
+ ~/.gradle/caches
96
+ ~/.gradle/wrapper
97
+ key : gradle-cache-jqnvfzw6w7
98
+
88
99
- name : Gradle assembleDebugAndroidTest
89
100
run : |
90
101
set -v
@@ -98,26 +109,34 @@ jobs:
98
109
${{ (inputs.gradleInfoLog && '--info') || '' }} \
99
110
:firebase-dataconnect:assembleDebugAndroidTest
100
111
112
+ - name : Save Gradle cache
113
+ uses : actions/cache/save@v4
114
+ if : github.event_name == 'schedule'
115
+ with :
116
+ path : |
117
+ ~/.gradle/caches
118
+ ~/.gradle/wrapper
119
+ key : gradle-cache-jqnvfzw6w7
120
+
101
121
- name : Enable KVM group permissions for Android Emulator
102
122
run : |
103
123
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \
104
124
| sudo tee /etc/udev/rules.d/99-kvm4all.rules
105
125
sudo udevadm control --reload-rules
106
126
sudo udevadm trigger --name-match=kvm
107
127
108
- - name : AVD cache
109
- uses : actions/cache@v4
128
+ - name : Restore AVD cache
129
+ uses : actions/cache/restore@v4
130
+ if : github.event_name != 'schedule'
110
131
id : avd-cache
111
132
with :
112
133
path : |
113
134
~/.android/avd/*
114
135
~/.android/adb*
115
- key : avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}-ref${{ github.ref_name }}
116
- restore-keys : |
117
- avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}-
136
+ key : avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}
118
137
119
- - name : Create AVD and generate snapshot for caching
120
- if : steps.avd-cache.outputs.cache-hit != 'true'
138
+ - name : Create AVD
139
+ if : github.event_name == 'schedule' || steps.avd-cache.outputs.cache-hit != 'true'
121
140
uses : reactivecircus/android-emulator-runner@v2
122
141
with :
123
142
api-level : ${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}
@@ -127,22 +146,32 @@ jobs:
127
146
disable-animations : false
128
147
script : echo "Generated AVD snapshot for caching."
129
148
149
+ - name : Save AVD cache
150
+ uses : actions/cache/save@v4
151
+ if : github.event_name == 'schedule'
152
+ id : avd-cache
153
+ with :
154
+ path : |
155
+ ~/.android/avd/*
156
+ ~/.android/adb*
157
+ key : avd-cache-zhdsn586je-api${{ env.FDC_ANDROID_EMULATOR_API_LEVEL }}
158
+
130
159
- name : Data Connect Emulator
131
160
run : |
132
161
set -x
133
162
134
- echo " emulator.postgresConnectionUrl=postgresql://postgres:[email protected] :5432?sslmode=disable" > firebase-dataconnect/dataconnect.local.properties
163
+ echo ' emulator.postgresConnectionUrl=postgresql://postgres:[email protected] :5432?sslmode=disable' > firebase-dataconnect/dataconnect.local.properties
135
164
136
165
./gradlew \
137
166
${{ (inputs.gradleInfoLog && '--info') || '' }} \
138
167
:firebase-dataconnect:connectors:runDebugDataConnectEmulator \
139
- 2>&1 >dataconnect .emulator.log &
168
+ 2>&1 >firebase .emulator.dataconnect .log &
140
169
141
170
- name : Firebase Auth Emulator
142
171
run : |
143
172
set -x
144
173
cd firebase-dataconnect/emulator
145
- ${{ env.FDC_FIREBASE_COMMAND }} emulators:start --only=auth &
174
+ ${{ env.FDC_FIREBASE_COMMAND }} emulators:start --only=auth 2>&1 >firebase.emulator.auth.log &
146
175
147
176
- name : Gradle connectedCheck
148
177
uses : reactivecircus/android-emulator-runner@v2
@@ -152,9 +181,16 @@ jobs:
152
181
force-avd-creation : false
153
182
emulator-options : -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
154
183
disable-animations : true
155
- script : set -x && ./gradlew --no-daemon ${{ (inputs.gradleInfoLog && '--info') || '' }} --profile :firebase-dataconnect:connectedCheck :firebase-dataconnect:connectors:connectedCheck
184
+ script : |
185
+ set -euox pipefail
186
+ ./gradlew \
187
+ ${{ (inputs.gradleInfoLog && '--info') || '' }} \
188
+ --profile \
189
+ :firebase-dataconnect:connectedCheck \
190
+ :firebase-dataconnect:connectors:connectedCheck
156
191
157
192
- uses : actions/upload-artifact@v4
193
+ if : true
158
194
with :
159
195
name : logs
160
196
path : " **/*.log"
0 commit comments