firestore.yml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. # TODO(Swift 6): Re-enable these tests.
  2. # Copyright 2020 Google LLC
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. # name: firestore
  16. # on:
  17. # workflow_dispatch:
  18. # pull_request:
  19. # schedule:
  20. # # Run every day at 12am (PST) - cron uses UTC times
  21. # - cron: '0 8 * * *'
  22. # concurrency:
  23. # group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  24. # cancel-in-progress: true
  25. # jobs:
  26. # changes:
  27. # runs-on: macos-15
  28. # # Only when this is not a scheduled run
  29. # if: github.event_name != 'schedule'
  30. # outputs:
  31. # changed: ${{ steps.firestore_src_changes.outputs.sources == 'true' || steps.related_changes.outputs.other_changes == 'true' }}
  32. # steps:
  33. # - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
  34. # id: firestore_src_changes
  35. # with:
  36. # predicate-quantifier: 'every'
  37. # filters: |
  38. # sources:
  39. # # Firestore sources
  40. # - 'Firestore/**'
  41. # - '!Firestore/**/*.md'
  42. # - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
  43. # id: related_changes
  44. # with:
  45. # filters: |
  46. # other_changes:
  47. # # Interop headers
  48. # - 'FirebaseAuth/Interop/*.h'
  49. # # FirebaseCore header change
  50. # - 'FirebaseCore/Internal'
  51. # - 'FirebaseCore/Sources/Public'
  52. # # Podspec
  53. # - 'FirebaseFirestoreInternal.podspec'
  54. # - 'FirebaseFirestore.podspec'
  55. # # Package.swift
  56. # - 'Package.swift'
  57. # # CMake
  58. # - '**CMakeLists.txt'
  59. # - 'cmake/**'
  60. # # Build scripts to which Firestore is sensitive
  61. # #
  62. # # Note that this doesn't include check scripts because changing those will
  63. # # already trigger the check workflow.
  64. # - 'scripts/binary_to_array.py'
  65. # - 'scripts/build.sh'
  66. # - 'scripts/install_prereqs.sh'
  67. # - 'scripts/localize_podfile.swift'
  68. # - 'scripts/pod_lib_lint.rb'
  69. # - 'scripts/run_firestore_emulator.sh'
  70. # - 'scripts/setup_*'
  71. # - 'scripts/sync_project.rb'
  72. # - 'scripts/test_quickstart.sh'
  73. # - 'scripts/xcresult_logs.py'
  74. # # This workflow
  75. # - '.github/workflows/firestore.yml'
  76. # # Rebuild on Ruby infrastructure changes.
  77. # - 'Gemfile*'
  78. # check:
  79. # needs: changes
  80. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  81. # if: |
  82. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  83. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  84. # runs-on: macos-15
  85. # steps:
  86. # - uses: actions/checkout@v4
  87. # - uses: actions/setup-python@v5
  88. # with:
  89. # python-version: 3.11
  90. # - name: Setup check
  91. # run: scripts/setup_check.sh
  92. # - name: Run check
  93. # run: scripts/check.sh --test-only
  94. # cmake:
  95. # needs: check
  96. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  97. # if: |
  98. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  99. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  100. # strategy:
  101. # matrix:
  102. # os: [macos-15, ubuntu-latest]
  103. # env:
  104. # MINT_PATH: ${{ github.workspace }}/mint
  105. # runs-on: ${{ matrix.os }}
  106. # steps:
  107. # - uses: actions/checkout@v4
  108. # - name: Prepare ccache
  109. # uses: actions/cache@v4
  110. # with:
  111. # path: ${{ runner.temp }}/ccache
  112. # key: firestore-ccache-${{ runner.os }}-${{ github.sha }}
  113. # restore-keys: |
  114. # firestore-ccache-${{ runner.os }}-
  115. # - name: Cache Mint packages
  116. # uses: actions/cache@v4
  117. # with:
  118. # path: ${{ env.MINT_PATH }}
  119. # key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}
  120. # restore-keys: ${{ runner.os }}-mint-
  121. # - uses: actions/setup-python@v5
  122. # with:
  123. # python-version: '3.11'
  124. # - name: Setup build
  125. # run: scripts/install_prereqs.sh Firestore ${{ runner.os }} cmake
  126. # - name: Build and test
  127. # run: |
  128. # export EXPERIMENTAL_MODE=true
  129. # export CCACHE_DIR=${{ runner.temp }}/ccache
  130. # scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
  131. # cmake-prod-db:
  132. # needs: check
  133. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  134. # if: |
  135. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  136. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  137. # strategy:
  138. # matrix:
  139. # os: [macos-15]
  140. # databaseId: [(default), test-db]
  141. # env:
  142. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  143. # MINT_PATH: ${{ github.workspace }}/mint
  144. # TARGET_DATABASE_ID: ${{ matrix.databaseId }}
  145. # runs-on: ${{ matrix.os }}
  146. # steps:
  147. # - uses: actions/checkout@v4
  148. # - name: Prepare ccache
  149. # uses: actions/cache@v4
  150. # with:
  151. # path: ${{ runner.temp }}/ccache
  152. # key: firestore-ccache-${{ matrix.databaseId }}-${{ runner.os }}-${{ github.sha }}
  153. # restore-keys: |
  154. # firestore-ccache-${{ matrix.databaseId }}-${{ runner.os }}-
  155. # - name: Cache Mint packages
  156. # uses: actions/cache@v4
  157. # with:
  158. # path: ${{ env.MINT_PATH }}
  159. # key: ${{ runner.os }}-mint-${{ hashFiles('**/Mintfile') }}
  160. # restore-keys: ${{ runner.os }}-mint-
  161. # - uses: actions/setup-python@v5
  162. # with:
  163. # python-version: '3.11'
  164. # - name: Install Secret GoogleService-Info.plist
  165. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/firestore.plist.gpg \
  166. # Firestore/Example/App/GoogleService-Info.plist "$plist_secret"
  167. # - name: Install Google Service Account key
  168. # run: |
  169. # scripts/decrypt_gha_secret.sh scripts/gha-encrypted/firestore-integration.json.gpg \
  170. # google-service-account.json "$plist_secret"
  171. # # create composite indexes with Terraform
  172. # - name: Set up Google Cloud SDK
  173. # uses: google-github-actions/setup-gcloud@v1
  174. # - name: Setup Terraform
  175. # uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2
  176. # - name: Terraform Init
  177. # run: |
  178. # cd Firestore
  179. # terraform init
  180. # - name: Terraform Apply
  181. # run: |
  182. # cd Firestore
  183. # # Define a temporary file, redirect both stdout and stderr to it
  184. # output_file=$(mktemp)
  185. # if ! terraform apply -var-file=../google-service-account.json -auto-approve > "$output_file" 2>&1 ; then
  186. # cat "$output_file"
  187. # if cat "$output_file" | grep -q "index already exists"; then
  188. # echo "==================================================================================="
  189. # echo "Terraform apply failed due to index already exists; We can safely ignore this error."
  190. # echo "==================================================================================="
  191. # fi
  192. # exit 1
  193. # fi
  194. # rm -f "$output_file"
  195. # env:
  196. # GOOGLE_APPLICATION_CREDENTIALS: ../google-service-account.json
  197. # continue-on-error: true
  198. # - name: Setup build
  199. # run: scripts/install_prereqs.sh Firestore ${{ runner.os }} cmake
  200. # - name: Build and test
  201. # run: |
  202. # export CCACHE_DIR=${{ runner.temp }}/ccache
  203. # scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
  204. # sanitizers-mac:
  205. # needs: check
  206. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  207. # if: |
  208. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  209. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  210. # strategy:
  211. # matrix:
  212. # os: [macos-15]
  213. # sanitizer: [asan, tsan]
  214. # runs-on: ${{ matrix.os }}
  215. # env:
  216. # SANITIZERS: ${{ matrix.sanitizer }}
  217. # steps:
  218. # - uses: actions/checkout@v4
  219. # - name: Prepare ccache
  220. # uses: actions/cache@v4
  221. # with:
  222. # path: ${{ runner.temp }}/ccache
  223. # key: ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-${{ github.sha }}
  224. # restore-keys: |
  225. # ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-
  226. # - uses: actions/setup-python@v5
  227. # with:
  228. # python-version: '3.11'
  229. # - name: Setup build
  230. # run: scripts/install_prereqs.sh Firestore ${{ runner.os }} cmake
  231. # - name: Build and test
  232. # run: |
  233. # export EXPERIMENTAL_MODE=true
  234. # export CCACHE_DIR=${{ runner.temp }}/ccache
  235. # scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
  236. # sanitizers-ubuntu:
  237. # needs: check
  238. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  239. # if: |
  240. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  241. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  242. # strategy:
  243. # matrix:
  244. # os: [ubuntu-latest]
  245. # # Excluding TSAN on ubuntu because of the warnings it generates around schedule.cc.
  246. # # This could be due to Apple Clang provide additional support for synchronization
  247. # # on Apple platforms, which is what we primarily care about.
  248. # sanitizer: [asan]
  249. # runs-on: ${{ matrix.os }}
  250. # env:
  251. # SANITIZERS: ${{ matrix.sanitizer }}
  252. # ASAN_OPTIONS: detect_leaks=0
  253. # steps:
  254. # - uses: actions/checkout@v3
  255. # - name: Prepare ccache
  256. # uses: actions/cache@v4
  257. # with:
  258. # path: ${{ runner.temp }}/ccache
  259. # key: ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-${{ github.sha }}
  260. # restore-keys: |
  261. # ${{ matrix.sanitizer }}-firestore-ccache-${{ runner.os }}-
  262. # - uses: actions/setup-python@v5
  263. # with:
  264. # python-version: '3.11'
  265. # - name: Setup build
  266. # run: scripts/install_prereqs.sh Firestore ${{ runner.os }} cmake
  267. # - name: Build and test
  268. # run: |
  269. # export EXPERIMENTAL_MODE=true
  270. # export CCACHE_DIR=${{ runner.temp }}/ccache
  271. # scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ runner.os }} cmake
  272. # xcodebuild:
  273. # needs: check
  274. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  275. # if: |
  276. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  277. # (github.event_name == 'pull_request')
  278. # runs-on: macos-15
  279. # strategy:
  280. # matrix:
  281. # target: [iOS, macOS, tvOS]
  282. # steps:
  283. # - uses: actions/checkout@v4
  284. # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  285. # with:
  286. # cache_key: ${{ matrix.target }}
  287. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  288. # - name: Setup build
  289. # run: scripts/install_prereqs.sh Firestore ${{ matrix.target }} xcodebuild
  290. # - name: Build and test
  291. # run: |
  292. # export EXPERIMENTAL_MODE=true
  293. # scripts/third_party/travis/retry.sh scripts/build.sh Firestore ${{ matrix.target }} xcodebuild
  294. # pod-lib-lint:
  295. # needs: check
  296. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  297. # if: |
  298. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  299. # (github.event_name == 'pull_request')
  300. # runs-on: macos-15
  301. # strategy:
  302. # matrix:
  303. # podspec: [
  304. # 'FirebaseFirestoreInternal.podspec',
  305. # 'FirebaseFirestore.podspec',
  306. # ]
  307. # steps:
  308. # - uses: actions/checkout@v4
  309. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  310. # - name: Setup Bundler
  311. # run: ./scripts/setup_bundler.sh
  312. # - name: Xcode
  313. # run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  314. # - name: Pod lib lint
  315. # # TODO(#9565, b/227461966): Remove --no-analyze when absl is fixed.
  316. # run: |
  317. # scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }} \
  318. # --platforms=ios \
  319. # --allow-warnings \
  320. # --no-analyze
  321. # # `pod lib lint` takes a long time so only run the other platforms and static frameworks build in the cron.
  322. # pod-lib-lint-cron:
  323. # needs: check
  324. # if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
  325. # strategy:
  326. # matrix:
  327. # podspec: [
  328. # 'FirebaseFirestoreInternal.podspec',
  329. # 'FirebaseFirestore.podspec',
  330. # ]
  331. # platforms: [
  332. # 'macos',
  333. # 'tvos',
  334. # 'ios',
  335. # ]
  336. # flags: [
  337. # '--use-static-frameworks',
  338. # '',
  339. # ]
  340. # os: [macos-15, macos-14]
  341. # # Skip matrix cells covered by pod-lib-lint job.
  342. # exclude:
  343. # - os: macos-15
  344. # platforms: 'ios'
  345. # runs-on: ${{ matrix.os }}
  346. # steps:
  347. # - uses: actions/checkout@v4
  348. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  349. # - name: Setup Bundler
  350. # run: ./scripts/setup_bundler.sh
  351. # - name: Xcode
  352. # run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  353. # - name: Pod lib lint
  354. # # TODO(#9565, b/227461966): Remove --no-analyze when absl is fixed.
  355. # run: |
  356. # scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb ${{ matrix.podspec }}\
  357. # ${{ matrix.flags }} \
  358. # --platforms=${{ matrix.platforms }} \
  359. # --allow-warnings \
  360. # --no-analyze
  361. # spm-package-resolved:
  362. # runs-on: macos-15
  363. # env:
  364. # FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  365. # FIREBASE_SOURCE_FIRESTORE: 1
  366. # outputs:
  367. # cache_key: ${{ steps.generate_cache_key.outputs.cache_key }}
  368. # steps:
  369. # - uses: actions/checkout@v4
  370. # - name: Xcode
  371. # run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  372. # - name: Generate Swift Package.resolved
  373. # id: swift_package_resolve
  374. # run: |
  375. # swift package resolve
  376. # - name: Generate cache key
  377. # id: generate_cache_key
  378. # run: |
  379. # cache_key="${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}"
  380. # echo "cache_key=${cache_key}" >> "$GITHUB_OUTPUT"
  381. # - uses: actions/cache/save@v4
  382. # id: cache
  383. # with:
  384. # path: .build
  385. # key: ${{ steps.generate_cache_key.outputs.cache_key }}
  386. # spm-source:
  387. # needs: [check, spm-package-resolved]
  388. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  389. # if: |
  390. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  391. # (github.event_name == 'pull_request')
  392. # strategy:
  393. # matrix:
  394. # include:
  395. # - os: macos-14
  396. # xcode: Xcode_16.2
  397. # target: iOS
  398. # - os: macos-15
  399. # xcode: Xcode_16.2
  400. # target: iOS
  401. # - os: macos-15
  402. # xcode: Xcode_16.2
  403. # target: tvOS
  404. # - os: macos-15
  405. # xcode: Xcode_16.2
  406. # target: macOS
  407. # - os: macos-15
  408. # xcode: Xcode_16.2
  409. # target: catalyst
  410. # - os: macos-15
  411. # xcode: Xcode_16.2
  412. # target: visionOS
  413. # runs-on: ${{ matrix.os }}
  414. # env:
  415. # FIREBASE_SOURCE_FIRESTORE: 1
  416. # steps:
  417. # - uses: actions/checkout@v4
  418. # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  419. # with:
  420. # cache_key: spm${{ matrix.os }}-${{ matrix.xcode }}-${{ matrix.target }}
  421. # - name: Xcode
  422. # run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  423. # - name: Initialize xcodebuild
  424. # run: scripts/setup_spm_tests.sh
  425. # - name: iOS Build Test
  426. # run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore ${{ matrix.target }} spmbuildonly
  427. # spm-binary:
  428. # needs: check
  429. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  430. # if: |
  431. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  432. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  433. # runs-on: macos-15
  434. # steps:
  435. # - uses: actions/checkout@v4
  436. # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  437. # with:
  438. # cache_key: spm-binary
  439. # - name: Xcode
  440. # run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  441. # - name: Initialize xcodebuild
  442. # run: scripts/setup_spm_tests.sh
  443. # - name: iOS Build Test
  444. # run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore iOS spmbuildonly
  445. # check-firestore-internal-public-headers:
  446. # needs: check
  447. # # Either a scheduled run from public repo, or a pull request with firestore changes.
  448. # if: |
  449. # (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') ||
  450. # (github.event_name == 'pull_request' && needs.changes.outputs.changed == 'true')
  451. # runs-on: macos-15
  452. # steps:
  453. # - uses: actions/checkout@v4
  454. # - name: Assert that Firestore and FirestoreInternal have identically named headers.
  455. # run: |
  456. # fst_dir=Firestore/Source/Public/FirebaseFirestore/
  457. # fst_internal_dir=FirebaseFirestoreInternal/FirebaseFirestore/
  458. # comparison=$(comm -3 <(ls $fst_dir | sort) <(ls $fst_internal_dir | sort))
  459. # if [[ -z "$comparison" ]]; then
  460. # echo "Success: Directories '$fst_dir' and '$fst_internal_dir' match."
  461. # else
  462. # echo "Error: Directories '$fst_dir' and '$fst_internal_dir' differ:"
  463. # echo "Files only in '$fst_dir':"
  464. # # Files in this set do not start with whitespace. Grep for them and a
  465. # # dashed prefix for nicer formatting.
  466. # echo "$comparison" | grep -v '^\s' | sed 's/^/- /'
  467. # echo "Files only in '$fst_internal_dir':"
  468. # # Files in this set start with whitespace. Grep for them and a dashed
  469. # # prefix for nicer formatting.
  470. # echo "$comparison" | grep '^\s' | sed 's/^ /- /'
  471. # exit 1
  472. # fi
  473. # # TODO: Re-enable either in or after #11706.
  474. # # spm-source-cron:
  475. # # # Don't run on private repo.
  476. # # if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
  477. # # runs-on: macos-15
  478. # # strategy:
  479. # # matrix:
  480. # # target: [tvOS, macOS, catalyst]
  481. # # env:
  482. # # FIREBASE_SOURCE_FIRESTORE: 1
  483. # # steps:
  484. # # - uses: actions/checkout@v4
  485. # # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  486. # # with:
  487. # # cache_key: ${{ matrix.os }}
  488. # # - name: Initialize xcodebuild
  489. # # run: scripts/setup_spm_tests.sh
  490. # # - name: Build Test - Binary
  491. # # run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore ${{ matrix.target }} spmbuildonly
  492. # spm-binary-cron:
  493. # # Don't run on private repo.
  494. # if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
  495. # runs-on: macos-15
  496. # strategy:
  497. # matrix:
  498. # target: [tvOS, macOS, catalyst]
  499. # steps:
  500. # - uses: actions/checkout@v4
  501. # - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  502. # with:
  503. # cache_key: ${{ matrix.target }}
  504. # - name: Xcode
  505. # run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  506. # - name: Initialize xcodebuild
  507. # run: scripts/setup_spm_tests.sh
  508. # - name: Build Test - Binary
  509. # run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore ${{ matrix.target }} spmbuildonly
  510. # # A job that fails if any required job in the test matrix fails,
  511. # # to be used as a required check for merging.
  512. # check-required-tests:
  513. # runs-on: ubuntu-latest
  514. # name: Check all required Firestore tests results
  515. # needs: [cmake, cmake-prod-db, xcodebuild, spm-source, spm-binary]
  516. # steps:
  517. # - name: Check test matrix
  518. # if: needs.*.result == 'failure'
  519. # run: exit 1
  520. # Disable until FirebaseUI is updated to accept Firebase 9 and quickstart is updated to accept
  521. # Firebase UI 12
  522. # quickstart:
  523. # # Don't run on private repo unless it is a PR.
  524. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
  525. # env:
  526. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  527. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  528. # runs-on: macos-14
  529. # needs: check
  530. # steps:
  531. # - uses: actions/checkout@v4
  532. # - name: Setup quickstart
  533. # run: scripts/setup_quickstart.sh firestore
  534. # - name: Install Secret GoogleService-Info.plist
  535. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  536. # quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  537. # - name: Test swift quickstart
  538. # run: ([ -z $plist_secret ] ||
  539. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)