zip.yml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651
  1. name: zip
  2. on:
  3. pull_request:
  4. paths:
  5. - 'ReleaseTooling/Sources/**'
  6. - '.github/workflows/zip.yml'
  7. - 'scripts/build_non_firebase_sdks.sh'
  8. - 'scripts/build_zip.sh'
  9. - 'scripts/setup_quickstart_framework.sh'
  10. - 'Gemfile*'
  11. # Don't run based on any markdown only changes.
  12. - '!ReleaseTooling/*.md'
  13. schedule:
  14. # Run every day at 8pm(PST) - cron uses UTC times
  15. - cron: '0 4 * * *'
  16. workflow_dispatch:
  17. inputs:
  18. custom_spec_repos:
  19. description: 'Custom Podspec repos'
  20. required: true
  21. default: 'https://github.com/firebase/SpecsStaging.git'
  22. concurrency:
  23. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  24. cancel-in-progress: true
  25. jobs:
  26. package-release:
  27. # Don't run on private repo.
  28. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  29. runs-on: macos-14
  30. steps:
  31. - uses: actions/checkout@v4
  32. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  33. with:
  34. cache_key: package-release
  35. - name: Xcode 16.2
  36. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  37. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  38. - name: Setup Bundler
  39. run: ./scripts/setup_bundler.sh
  40. - name: ZipBuildingTest
  41. run: |
  42. mkdir -p release_zip_dir
  43. sh -x scripts/build_zip.sh release_zip_dir \
  44. "${{ github.event.inputs.custom_spec_repos || 'https://github.com/firebase/SpecsStaging.git' }}" \
  45. build-release \
  46. static
  47. - uses: actions/upload-artifact@v4
  48. with:
  49. name: Firebase-release-zip-zip
  50. # Zip the entire output directory since the builder adds subdirectories we don't know the
  51. # name of.
  52. path: release_zip_dir
  53. build:
  54. # Don't run on private repo unless it is a PR.
  55. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  56. runs-on: macos-14
  57. steps:
  58. - uses: actions/checkout@v4
  59. - name: Xcode 16.2
  60. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  61. - name: Build
  62. run: |
  63. cd ReleaseTooling
  64. swift build -v
  65. package-head:
  66. # Don't run on private repo.
  67. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  68. needs: build
  69. strategy:
  70. matrix:
  71. linking_type: [static, dynamic]
  72. runs-on: macos-14
  73. steps:
  74. - uses: actions/checkout@v4
  75. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  76. with:
  77. cache_key: package-head
  78. - name: Xcode 16.2
  79. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  80. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  81. - name: Setup Bundler
  82. run: ./scripts/setup_bundler.sh
  83. - name: ZipBuildingTest
  84. run: |
  85. mkdir -p zip_output_dir
  86. sh -x scripts/build_zip.sh \
  87. zip_output_dir "${{ github.event.inputs.custom_spec_repos || 'https://github.com/firebase/SpecsStaging.git,https://github.com/firebase/SpecsDev.git' }}" \
  88. build-head \
  89. ${{ matrix.linking_type }}
  90. - uses: actions/upload-artifact@v4
  91. if: ${{ always() }}
  92. with:
  93. name: ${{ matrix.linking_type == 'static' && 'Firebase-actions-dir' || 'Firebase-actions-dir-dynamic' }}
  94. # Zip the entire output directory since the builder adds subdirectories we don't know the
  95. # name of.
  96. path: zip_output_dir
  97. quickstart_framework_abtesting:
  98. # Don't run on private repo.
  99. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  100. needs: package-head
  101. env:
  102. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  103. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  104. SDK: "ABTesting"
  105. strategy:
  106. matrix:
  107. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  108. build-env:
  109. - os: macos-15
  110. xcode: Xcode_16.2
  111. # - os: macos-15
  112. # xcode: Xcode_16.4
  113. runs-on: ${{ matrix.build-env.os }}
  114. steps:
  115. - uses: actions/checkout@v4
  116. - name: Get framework dir
  117. uses: actions/download-artifact@v4.1.7
  118. with:
  119. name: ${{ matrix.artifact }}
  120. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  121. - name: Setup Bundler
  122. run: ./scripts/setup_bundler.sh
  123. - name: Move frameworks
  124. run: |
  125. mkdir -p "${HOME}"/ios_frameworks/
  126. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  127. - uses: actions/checkout@v4
  128. - name: Xcode
  129. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  130. - name: Setup quickstart
  131. env:
  132. LEGACY: true
  133. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  134. "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \
  135. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCore.xcframework \
  136. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseCoreInternal.xcframework \
  137. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FBLPromises.xcframework \
  138. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/FirebaseInstallations.xcframework \
  139. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/GoogleUtilities.xcframework
  140. - name: Install Secret GoogleService-Info.plist
  141. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  142. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  143. - name: Test Quickstart
  144. env:
  145. LEGACY: true
  146. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  147. - name: Remove data before upload
  148. env:
  149. LEGACY: true
  150. if: ${{ failure() }}
  151. run: scripts/remove_data.sh abtesting
  152. - uses: actions/upload-artifact@v4
  153. if: ${{ failure() }}
  154. with:
  155. name: quickstart_artifacts_abtesting
  156. path: quickstart-ios/
  157. quickstart_framework_auth:
  158. # Don't run on private repo.
  159. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  160. needs: package-head
  161. env:
  162. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  163. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  164. SDK: "Authentication"
  165. strategy:
  166. matrix:
  167. os: [macos-15]
  168. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  169. include:
  170. - os: macos-15
  171. xcode: Xcode_16.2
  172. runs-on: ${{ matrix.os }}
  173. steps:
  174. - uses: actions/checkout@v4
  175. - name: Get framework dir
  176. uses: actions/download-artifact@v4.1.7
  177. with:
  178. name: ${{ matrix.artifact }}
  179. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  180. - name: Setup Bundler
  181. run: ./scripts/setup_bundler.sh
  182. - name: Move frameworks
  183. run: |
  184. mkdir -p "${HOME}"/ios_frameworks/
  185. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  186. - name: Xcode
  187. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  188. - name: Setup Swift Quickstart
  189. run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FBSDKLoginKit FBSDKCoreKit FBSDKCoreKit_Basics FBAEMKit" scripts/setup_quickstart_framework.sh \
  190. "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
  191. "${HOME}"/ios_frameworks/Firebase/GoogleSignIn/* \
  192. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  193. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  194. - name: Install Secret GoogleService-Info.plist
  195. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  196. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  197. - name: Test Swift Quickstart
  198. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  199. - name: Remove data before upload
  200. if: ${{ failure() }}
  201. run: scripts/remove_data.sh authentiation
  202. - uses: actions/upload-artifact@v4
  203. if: ${{ failure() }}
  204. with:
  205. name: quickstart_artifacts_auth
  206. path: quickstart-ios/
  207. quickstart_framework_config:
  208. # Don't run on private repo.
  209. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  210. needs: package-head
  211. env:
  212. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  213. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  214. SDK: "Config"
  215. strategy:
  216. matrix:
  217. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  218. build-env:
  219. - os: macos-15
  220. xcode: Xcode_16.2
  221. # - os: macos-15
  222. # xcode: Xcode_16.4
  223. runs-on: ${{ matrix.build-env.os }}
  224. steps:
  225. - uses: actions/checkout@v4
  226. - name: Get framework dir
  227. uses: actions/download-artifact@v4.1.7
  228. with:
  229. name: ${{ matrix.artifact }}
  230. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  231. - name: Setup Bundler
  232. run: ./scripts/setup_bundler.sh
  233. - name: Move frameworks
  234. run: |
  235. mkdir -p "${HOME}"/ios_frameworks/
  236. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  237. - name: Xcode
  238. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  239. - name: Setup Swift Quickstart
  240. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  241. "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \
  242. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  243. - name: Install Secret GoogleService-Info.plist
  244. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  245. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  246. - name: Test Swift Quickstart
  247. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  248. - name: Remove data before upload
  249. if: ${{ failure() }}
  250. run: scripts/remove_data.sh config
  251. - uses: actions/upload-artifact@v4
  252. if: ${{ failure() }}
  253. with:
  254. name: quickstart_artifacts_config
  255. path: quickstart-ios/
  256. quickstart_framework_crashlytics:
  257. # Don't run on private repo.
  258. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  259. needs: package-head
  260. env:
  261. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  262. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  263. SDK: "Crashlytics"
  264. strategy:
  265. matrix:
  266. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  267. build-env:
  268. - os: macos-15
  269. xcode: Xcode_16.2
  270. # - os: macos-15
  271. # xcode: Xcode_16.4
  272. runs-on: ${{ matrix.build-env.os }}
  273. steps:
  274. - uses: actions/checkout@v4
  275. - name: Get framework dir
  276. uses: actions/download-artifact@v4.1.7
  277. with:
  278. name: ${{ matrix.artifact }}
  279. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  280. - name: Setup Bundler
  281. run: ./scripts/setup_bundler.sh
  282. - name: Move frameworks
  283. run: |
  284. mkdir -p "${HOME}"/ios_frameworks/
  285. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  286. - uses: actions/checkout@v4
  287. - name: Xcode
  288. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  289. - name: Setup quickstart
  290. env:
  291. LEGACY: true
  292. run: |
  293. SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  294. "${HOME}"/ios_frameworks/Firebase/FirebaseCrashlytics/* \
  295. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  296. cp quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Firebase/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart
  297. cp quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Firebase/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart
  298. chmod +x quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/run
  299. chmod +x quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/upload-symbols
  300. # TODO(#8057): Restore Swift Quickstart
  301. # - name: Setup swift quickstart
  302. # env:
  303. # LEGACY: true
  304. # run: |
  305. # SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" NON_FIREBASE_SDKS="ReachabilitySwift" scripts/setup_quickstart_framework.sh \
  306. # "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/*
  307. - name: Install Secret GoogleService-Info.plist
  308. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  309. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  310. - name: Test Quickstart
  311. env:
  312. LEGACY: true
  313. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  314. # TODO(#8057): Restore Swift Quickstart
  315. # - name: Test Swift Quickstart
  316. # env:
  317. # LEGACY: true
  318. # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  319. - name: Remove data before upload
  320. env:
  321. LEGACY: true
  322. if: ${{ failure() }}
  323. run: scripts/remove_data.sh crashlytics
  324. - uses: actions/upload-artifact@v4
  325. if: ${{ failure() }}
  326. with:
  327. name: quickstart_artifacts_crashlytics
  328. path: quickstart-ios/
  329. quickstart_framework_database:
  330. # Don't run on private repo.
  331. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  332. needs: package-head
  333. env:
  334. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  335. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  336. SDK: "Database"
  337. strategy:
  338. matrix:
  339. os: [macos-14]
  340. xcode: [Xcode_16.2]
  341. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  342. runs-on: ${{ matrix.os }}
  343. steps:
  344. - uses: actions/checkout@v4
  345. - name: Get framework dir
  346. uses: actions/download-artifact@v4.1.7
  347. with:
  348. name: ${{ matrix.artifact }}
  349. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  350. - name: Setup Bundler
  351. run: ./scripts/setup_bundler.sh
  352. - name: Move frameworks
  353. run: |
  354. mkdir -p "${HOME}"/ios_frameworks/
  355. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  356. - uses: actions/checkout@v4
  357. - name: Xcode
  358. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  359. - name: Setup quickstart
  360. run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FirebaseDatabaseUI" scripts/setup_quickstart_framework.sh \
  361. "${HOME}"/ios_frameworks/Firebase/FirebaseDatabase/* \
  362. "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \
  363. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \
  364. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  365. "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
  366. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  367. - name: Install Secret GoogleService-Info.plist
  368. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  369. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  370. - name: Test Quickstart
  371. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  372. - name: Remove data before upload
  373. if: ${{ failure() }}
  374. run: scripts/remove_data.sh database
  375. - uses: actions/upload-artifact@v4
  376. if: ${{ failure() }}
  377. with:
  378. name: quickstart_artifacts database
  379. path: quickstart-ios/
  380. quickstart_framework_firestore:
  381. # Don't run on private repo.
  382. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  383. needs: package-head
  384. env:
  385. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  386. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  387. SDK: "Firestore"
  388. strategy:
  389. matrix:
  390. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  391. build-env:
  392. - os: macos-15
  393. xcode: Xcode_16.2
  394. # - os: macos-15
  395. # xcode: Xcode_16.4
  396. runs-on: ${{ matrix.build-env.os }}
  397. steps:
  398. - uses: actions/checkout@v4
  399. - name: Get framework dir
  400. uses: actions/download-artifact@v4.1.7
  401. with:
  402. name: ${{ matrix.artifact }}
  403. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  404. - name: Setup Bundler
  405. run: ./scripts/setup_bundler.sh
  406. - name: Move frameworks
  407. run: |
  408. mkdir -p "${HOME}"/ios_frameworks/
  409. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  410. - uses: actions/checkout@v4
  411. - name: Setup quickstart
  412. run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="SDWebImage FirebaseAuthUI FirebaseEmailAuthUI" scripts/setup_quickstart_framework.sh \
  413. "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
  414. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \
  415. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  416. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  417. - name: Xcode
  418. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  419. - name: Install Secret GoogleService-Info.plist
  420. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  421. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  422. - name: Test Quickstart
  423. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  424. - name: Remove data before upload and zip directory to reduce upload size.
  425. if: ${{ failure() }}
  426. run: scripts/remove_data.sh firestore; zip -r --symlinks quickstart_artifacts_firestore.zip quickstart-ios/
  427. - uses: actions/upload-artifact@v4
  428. if: ${{ failure() }}
  429. with:
  430. name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.build-env.os }}
  431. path: quickstart_artifacts_firestore.zip
  432. check_framework_firestore_symbols:
  433. # Don't run on private repo.
  434. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  435. needs: package-head
  436. env:
  437. FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  438. runs-on: macos-14
  439. steps:
  440. - name: Xcode 16.2
  441. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  442. - uses: actions/checkout@v4
  443. - name: Get framework dir
  444. uses: actions/download-artifact@v4.1.7
  445. with:
  446. name: Firebase-actions-dir
  447. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  448. - name: Setup Bundler
  449. run: ./scripts/setup_bundler.sh
  450. - name: Install xcpretty
  451. run: gem install xcpretty
  452. - name: Move frameworks
  453. run: |
  454. mkdir -p "${HOME}"/ios_frameworks/
  455. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  456. - uses: actions/checkout@v4
  457. - name: Check linked Firestore.xcframework for unlinked symbols.
  458. run: |
  459. scripts/check_firestore_symbols.sh \
  460. $(pwd) \
  461. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/FirebaseFirestoreInternal.xcframework
  462. quickstart_framework_inappmessaging:
  463. # Don't run on private repo.
  464. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  465. needs: package-head
  466. env:
  467. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  468. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  469. SDK: "InAppMessaging"
  470. strategy:
  471. matrix:
  472. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  473. build-env:
  474. - os: macos-15
  475. xcode: Xcode_16.2
  476. # - os: macos-15
  477. # xcode: Xcode_16.4
  478. runs-on: ${{ matrix.build-env.os }}
  479. steps:
  480. - uses: actions/checkout@v4
  481. - name: Get framework dir
  482. uses: actions/download-artifact@v4.1.7
  483. with:
  484. name: ${{ matrix.artifact }}
  485. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  486. - name: Setup Bundler
  487. run: ./scripts/setup_bundler.sh
  488. - name: Move frameworks
  489. run: |
  490. mkdir -p "${HOME}"/ios_frameworks/
  491. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  492. - uses: actions/checkout@v4
  493. - name: Setup quickstart
  494. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  495. "${HOME}"/ios_frameworks/Firebase/FirebaseInAppMessaging/* \
  496. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  497. - name: Xcode
  498. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  499. - name: Setup swift quickstart
  500. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  501. - name: Install Secret GoogleService-Info.plist
  502. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  503. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  504. - name: Test Quickstart
  505. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  506. - name: Test Swift Quickstart
  507. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  508. - name: Remove data before upload
  509. if: ${{ failure() }}
  510. run: scripts/remove_data.sh inappmessaging
  511. - uses: actions/upload-artifact@v4
  512. if: ${{ failure() }}
  513. with:
  514. name: quickstart_artifacts_inappmessaging
  515. path: quickstart-ios/
  516. quickstart_framework_messaging:
  517. # Don't run on private repo.
  518. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  519. needs: package-head
  520. env:
  521. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  522. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  523. SDK: "Messaging"
  524. strategy:
  525. matrix:
  526. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  527. build-env:
  528. - os: macos-15
  529. xcode: Xcode_16.2
  530. # - os: macos-15
  531. # xcode: Xcode_16.4
  532. runs-on: ${{ matrix.build-env.os }}
  533. steps:
  534. - uses: actions/checkout@v4
  535. - name: Get framework dir
  536. uses: actions/download-artifact@v4.1.7
  537. with:
  538. name: ${{ matrix.artifact }}
  539. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  540. - name: Setup Bundler
  541. run: ./scripts/setup_bundler.sh
  542. - name: Move frameworks
  543. run: |
  544. mkdir -p "${HOME}"/ios_frameworks/
  545. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  546. - uses: actions/checkout@v4
  547. - name: Setup quickstart
  548. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  549. "${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \
  550. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  551. - name: Xcode
  552. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  553. - name: Setup swift quickstart
  554. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  555. - name: Install Secret GoogleService-Info.plist
  556. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  557. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  558. - name: Test Quickstart
  559. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  560. - name: Test Swift Quickstart
  561. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  562. - name: Remove data before upload
  563. if: ${{ failure() }}
  564. run: scripts/remove_data.sh messaging
  565. - uses: actions/upload-artifact@v4
  566. if: ${{ failure() }}
  567. with:
  568. name: quickstart_artifacts_messaging
  569. path: quickstart-ios/
  570. quickstart_framework_storage:
  571. # Don't run on private repo.
  572. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  573. needs: package-head
  574. env:
  575. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  576. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  577. SDK: "Storage"
  578. strategy:
  579. matrix:
  580. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  581. build-env:
  582. - os: macos-15
  583. xcode: Xcode_16.2
  584. # - os: macos-15
  585. # xcode: Xcode_16.4
  586. runs-on: ${{ matrix.build-env.os }}
  587. steps:
  588. - uses: actions/checkout@v4
  589. - name: Get framework dir
  590. uses: actions/download-artifact@v4.1.7
  591. with:
  592. name: ${{ matrix.artifact }}
  593. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  594. - name: Setup Bundler
  595. run: ./scripts/setup_bundler.sh
  596. - name: Move frameworks
  597. run: |
  598. mkdir -p "${HOME}"/ios_frameworks/
  599. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  600. - uses: actions/checkout@v4
  601. - name: Setup quickstart
  602. env:
  603. LEGACY: true
  604. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  605. "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \
  606. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  607. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  608. - name: Xcode
  609. run: sudo xcode-select -s /Applications/${{ matrix.build-env.xcode }}.app/Contents/Developer
  610. - name: Setup swift quickstart
  611. env:
  612. LEGACY: true
  613. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  614. - name: Install Secret GoogleService-Info.plist
  615. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  616. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  617. - name: Test Quickstart
  618. env:
  619. LEGACY: true
  620. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  621. - name: Test Swift Quickstart
  622. env:
  623. LEGACY: true
  624. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  625. - name: Remove data before upload
  626. env:
  627. LEGACY: true
  628. if: ${{ failure() }}
  629. run: scripts/remove_data.sh storage
  630. - uses: actions/upload-artifact@v4
  631. if: ${{ failure() }}
  632. with:
  633. name: quickstart_artifacts_storage
  634. path: quickstart-ios/