zip.yml 32 KB

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