97
97
- name : Run check
98
98
run : scripts/check.sh --test-only
99
99
100
-
101
100
cmake :
102
101
needs : check
103
102
# Either a scheduled run from public repo, or a pull request with firestore changes.
@@ -231,7 +230,7 @@ jobs:
231
230
scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
232
231
233
232
234
- sanitizers :
233
+ sanitizers-mac :
235
234
# Either a scheduled run from public repo, or a pull request with firestore changes.
236
235
if : |
237
236
(github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
@@ -240,7 +239,6 @@ jobs:
240
239
241
240
strategy :
242
241
matrix :
243
- # TODO(b/260248007): Re-enable this once tsan passes on Linux
244
242
os : [macos-12]
245
243
sanitizer : [asan, tsan]
246
244
@@ -274,6 +272,52 @@ jobs:
274
272
scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
275
273
276
274
275
+ sanitizers-ubuntu :
276
+ # Either a scheduled run from public repo, or a pull request with firestore changes.
277
+ if : |
278
+ (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
279
+ (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
280
+ needs : check
281
+
282
+ strategy :
283
+ matrix :
284
+ os : [ubuntu-latest]
285
+ # Excluding TSAN on ubuntu because of the warnings it generates around schedule.cc.
286
+ # This could be due to Apple Clang provide additional support for synchronization
287
+ # on Apple platforms, which is what we primarily care about.
288
+ sanitizer : [asan]
289
+
290
+ runs-on : ${{ matrix.os }}
291
+
292
+ env :
293
+ SANITIZERS : ${{ matrix.sanitizer }}
294
+ ASAN_OPTIONS : detect_leaks=0
295
+
296
+ steps :
297
+ - uses : actions/checkout@v3
298
+
299
+ - name : Prepare ccache
300
+ uses : actions/cache@v3
301
+ with :
302
+ path : ${{ runner.temp }}/ccache
303
+ key : ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-${{ github.sha }}
304
+ restore-keys : |
305
+ ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-
306
+
307
+ - uses : actions/setup-python@v4
308
+ with :
309
+ python-version : ' 3.7'
310
+
311
+ - name : Setup build
312
+ run : scripts/install_prereqs.sh Firestore ${{ runner.os }} cmake
313
+
314
+ - name : Build and test
315
+ run : |
316
+ export EXPERIMENTAL_MODE=true
317
+ export CCACHE_DIR=${{ runner.temp }}/ccache
318
+ scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
319
+
320
+
277
321
xcodebuild :
278
322
# Either a scheduled run from public repo, or a pull request with firestore changes.
279
323
if : |
0 commit comments