zip.yml 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  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-13
  30. steps:
  31. - uses: actions/checkout@v4
  32. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  33. with:
  34. cache_key: package-release
  35. - name: Xcode 15.2
  36. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  37. - uses: ruby/setup-ruby@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-13
  57. steps:
  58. - uses: actions/checkout@v4
  59. - name: Xcode 15.2
  60. run: sudo xcode-select -s /Applications/Xcode_15.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-13
  73. steps:
  74. - uses: actions/checkout@v4
  75. - uses: mikehardy/buildcache-action@c87cea0ccd718971d6cc39e672c4f26815b6c126
  76. with:
  77. cache_key: package-head
  78. - name: Xcode 15.2
  79. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  80. - uses: ruby/setup-ruby@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. os: [macos-13, macos-14]
  108. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  109. include:
  110. - os: macos-13
  111. xcode: Xcode_15.2
  112. - os: macos-14
  113. xcode: Xcode_16
  114. runs-on: ${{ matrix.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@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.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-14]
  169. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  170. include:
  171. - os: macos-14
  172. xcode: Xcode_16
  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@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. os: [macos-13, macos-14]
  220. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  221. include:
  222. - os: macos-13
  223. xcode: Xcode_15.2
  224. - os: macos-14
  225. xcode: Xcode_16
  226. runs-on: ${{ matrix.os }}
  227. steps:
  228. - uses: actions/checkout@v4
  229. - name: Get framework dir
  230. uses: actions/download-artifact@v4.1.7
  231. with:
  232. name: ${{ matrix.artifact }}
  233. - uses: ruby/setup-ruby@v1
  234. - name: Setup Bundler
  235. run: ./scripts/setup_bundler.sh
  236. - name: Move frameworks
  237. run: |
  238. mkdir -p "${HOME}"/ios_frameworks/
  239. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  240. - name: Xcode
  241. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  242. - name: Setup Swift Quickstart
  243. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  244. "${HOME}"/ios_frameworks/Firebase/FirebaseRemoteConfig/* \
  245. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  246. - name: Install Secret GoogleService-Info.plist
  247. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  248. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  249. - name: Test Swift Quickstart
  250. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  251. - name: Remove data before upload
  252. if: ${{ failure() }}
  253. run: scripts/remove_data.sh config
  254. - uses: actions/upload-artifact@v4
  255. if: ${{ failure() }}
  256. with:
  257. name: quickstart_artifacts_config
  258. path: quickstart-ios/
  259. quickstart_framework_crashlytics:
  260. # Don't run on private repo.
  261. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  262. needs: package-head
  263. env:
  264. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  265. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  266. SDK: "Crashlytics"
  267. strategy:
  268. matrix:
  269. os: [macos-13, macos-14]
  270. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  271. include:
  272. - os: macos-13
  273. xcode: Xcode_15.2
  274. - os: macos-14
  275. xcode: Xcode_16
  276. runs-on: ${{ matrix.os }}
  277. steps:
  278. - uses: actions/checkout@v4
  279. - name: Get framework dir
  280. uses: actions/download-artifact@v4.1.7
  281. with:
  282. name: ${{ matrix.artifact }}
  283. - uses: ruby/setup-ruby@v1
  284. - name: Setup Bundler
  285. run: ./scripts/setup_bundler.sh
  286. - name: Move frameworks
  287. run: |
  288. mkdir -p "${HOME}"/ios_frameworks/
  289. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  290. - uses: actions/checkout@v4
  291. - name: Xcode
  292. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  293. - name: Setup quickstart
  294. env:
  295. LEGACY: true
  296. run: |
  297. SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  298. "${HOME}"/ios_frameworks/Firebase/FirebaseCrashlytics/* \
  299. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  300. cp quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Firebase/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart
  301. cp quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Firebase/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart
  302. chmod +x quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/run
  303. chmod +x quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/upload-symbols
  304. # TODO(#8057): Restore Swift Quickstart
  305. # - name: Setup swift quickstart
  306. # env:
  307. # LEGACY: true
  308. # run: |
  309. # SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" NON_FIREBASE_SDKS="ReachabilitySwift" scripts/setup_quickstart_framework.sh \
  310. # "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/*
  311. - name: Install Secret GoogleService-Info.plist
  312. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  313. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  314. - name: Test Quickstart
  315. env:
  316. LEGACY: true
  317. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  318. # TODO(#8057): Restore Swift Quickstart
  319. # - name: Test Swift Quickstart
  320. # env:
  321. # LEGACY: true
  322. # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  323. - name: Remove data before upload
  324. env:
  325. LEGACY: true
  326. if: ${{ failure() }}
  327. run: scripts/remove_data.sh crashlytics
  328. - uses: actions/upload-artifact@v4
  329. if: ${{ failure() }}
  330. with:
  331. name: quickstart_artifacts_crashlytics
  332. path: quickstart-ios/
  333. quickstart_framework_database:
  334. # Don't run on private repo.
  335. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  336. needs: package-head
  337. env:
  338. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  339. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  340. SDK: "Database"
  341. strategy:
  342. matrix:
  343. os: [macos-13]
  344. xcode: [Xcode_15.2]
  345. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  346. runs-on: ${{ matrix.os }}
  347. steps:
  348. - uses: actions/checkout@v4
  349. - name: Get framework dir
  350. uses: actions/download-artifact@v4.1.7
  351. with:
  352. name: ${{ matrix.artifact }}
  353. - uses: ruby/setup-ruby@v1
  354. - name: Setup Bundler
  355. run: ./scripts/setup_bundler.sh
  356. - name: Move frameworks
  357. run: |
  358. mkdir -p "${HOME}"/ios_frameworks/
  359. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  360. - uses: actions/checkout@v4
  361. - name: Xcode
  362. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  363. - name: Setup quickstart
  364. run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="FirebaseDatabaseUI" scripts/setup_quickstart_framework.sh \
  365. "${HOME}"/ios_frameworks/Firebase/FirebaseDatabase/* \
  366. "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \
  367. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \
  368. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  369. "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
  370. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  371. - name: Install Secret GoogleService-Info.plist
  372. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  373. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  374. - name: Test Quickstart
  375. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  376. - name: Remove data before upload
  377. if: ${{ failure() }}
  378. run: scripts/remove_data.sh database
  379. - uses: actions/upload-artifact@v4
  380. if: ${{ failure() }}
  381. with:
  382. name: quickstart_artifacts database
  383. path: quickstart-ios/
  384. quickstart_framework_dynamiclinks:
  385. # Don't run on private repo.
  386. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  387. needs: package-head
  388. env:
  389. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  390. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  391. SDK: "DynamicLinks"
  392. strategy:
  393. matrix:
  394. os: [macos-13, macos-14]
  395. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  396. include:
  397. - os: macos-13
  398. xcode: Xcode_15.2
  399. - os: macos-14
  400. xcode: Xcode_16
  401. runs-on: ${{ matrix.os }}
  402. steps:
  403. - uses: actions/checkout@v4
  404. - name: Get framework dir
  405. uses: actions/download-artifact@v4.1.7
  406. with:
  407. name: ${{ matrix.artifact }}
  408. - uses: ruby/setup-ruby@v1
  409. - name: Setup Bundler
  410. run: ./scripts/setup_bundler.sh
  411. - name: Move frameworks
  412. run: |
  413. mkdir -p "${HOME}"/ios_frameworks/
  414. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  415. - name: Setup Objc Quickstart
  416. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  417. "${HOME}"/ios_frameworks/Firebase/FirebaseDynamicLinks/* \
  418. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  419. - name: Xcode
  420. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  421. - name: Setup Swift Quickstart
  422. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  423. - name: Update Environment Variable For DynamicLinks
  424. run: |
  425. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  426. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  427. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  428. - name: Install Secret GoogleService-Info.plist
  429. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  430. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  431. - name: Test Objc Quickstart
  432. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  433. - name: Test Swift Quickstart
  434. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  435. - name: Remove data before upload
  436. if: ${{ failure() }}
  437. run: scripts/remove_data.sh dynamiclinks
  438. - uses: actions/upload-artifact@v4
  439. if: ${{ failure() }}
  440. with:
  441. name: quickstart_artifacts_dynamiclinks
  442. path: quickstart-ios/
  443. quickstart_framework_firestore:
  444. # Don't run on private repo.
  445. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  446. needs: package-head
  447. env:
  448. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  449. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  450. SDK: "Firestore"
  451. strategy:
  452. matrix:
  453. os: [macos-13, macos-14]
  454. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  455. include:
  456. - os: macos-13
  457. xcode: Xcode_15.2
  458. - os: macos-14
  459. xcode: Xcode_16
  460. runs-on: ${{ matrix.os }}
  461. steps:
  462. - uses: actions/checkout@v4
  463. - name: Get framework dir
  464. uses: actions/download-artifact@v4.1.7
  465. with:
  466. name: ${{ matrix.artifact }}
  467. - uses: ruby/setup-ruby@v1
  468. - name: Setup Bundler
  469. run: ./scripts/setup_bundler.sh
  470. - name: Move frameworks
  471. run: |
  472. mkdir -p "${HOME}"/ios_frameworks/
  473. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  474. - uses: actions/checkout@v4
  475. - name: Setup quickstart
  476. run: SAMPLE="$SDK" TARGET="${SDK}Example" NON_FIREBASE_SDKS="SDWebImage FirebaseAuthUI FirebaseEmailAuthUI" scripts/setup_quickstart_framework.sh \
  477. "${HOME}"/ios_frameworks/Firebase/NonFirebaseSDKs/* \
  478. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/* \
  479. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  480. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  481. - name: Xcode
  482. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  483. - name: Install Secret GoogleService-Info.plist
  484. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  485. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  486. - name: Test Quickstart
  487. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  488. - name: Remove data before upload and zip directory to reduce upload size.
  489. if: ${{ failure() }}
  490. run: scripts/remove_data.sh firestore; zip -r --symlinks quickstart_artifacts_firestore.zip quickstart-ios/
  491. - uses: actions/upload-artifact@v4
  492. if: ${{ failure() }}
  493. with:
  494. name: quickstart_artifacts_firestore_${{ matrix.artifact }}_${{ matrix.os }}
  495. path: quickstart_artifacts_firestore.zip
  496. check_framework_firestore_symbols:
  497. # Don't run on private repo.
  498. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  499. needs: package-head
  500. env:
  501. FIREBASECI_USE_LATEST_GOOGLEAPPMEASUREMENT: 1
  502. runs-on: macos-13
  503. steps:
  504. - name: Xcode 15.2
  505. run: sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer
  506. - uses: actions/checkout@v4
  507. - name: Get framework dir
  508. uses: actions/download-artifact@v4.1.7
  509. with:
  510. name: Firebase-actions-dir
  511. - uses: ruby/setup-ruby@v1
  512. - name: Setup Bundler
  513. run: ./scripts/setup_bundler.sh
  514. - name: Install xcpretty
  515. run: gem install xcpretty
  516. - name: Move frameworks
  517. run: |
  518. mkdir -p "${HOME}"/ios_frameworks/
  519. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  520. - uses: actions/checkout@v4
  521. - name: Check linked Firestore.xcframework for unlinked symbols.
  522. run: |
  523. scripts/check_firestore_symbols.sh \
  524. $(pwd) \
  525. "${HOME}"/ios_frameworks/Firebase/FirebaseFirestore/FirebaseFirestoreInternal.xcframework
  526. quickstart_framework_inappmessaging:
  527. # Don't run on private repo.
  528. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  529. needs: package-head
  530. env:
  531. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  532. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  533. SDK: "InAppMessaging"
  534. strategy:
  535. matrix:
  536. os: [macos-13, macos-14]
  537. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  538. include:
  539. - os: macos-13
  540. xcode: Xcode_15.2
  541. - os: macos-14
  542. xcode: Xcode_16
  543. runs-on: ${{ matrix.os }}
  544. steps:
  545. - uses: actions/checkout@v4
  546. - name: Get framework dir
  547. uses: actions/download-artifact@v4.1.7
  548. with:
  549. name: ${{ matrix.artifact }}
  550. - uses: ruby/setup-ruby@v1
  551. - name: Setup Bundler
  552. run: ./scripts/setup_bundler.sh
  553. - name: Move frameworks
  554. run: |
  555. mkdir -p "${HOME}"/ios_frameworks/
  556. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  557. - uses: actions/checkout@v4
  558. - name: Setup quickstart
  559. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  560. "${HOME}"/ios_frameworks/Firebase/FirebaseDynamicLinks/* \
  561. "${HOME}"/ios_frameworks/Firebase/FirebaseInAppMessaging/* \
  562. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  563. - name: Xcode
  564. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  565. - name: Setup swift quickstart
  566. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  567. - name: Install Secret GoogleService-Info.plist
  568. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  569. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  570. - name: Test Quickstart
  571. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  572. - name: Test Swift Quickstart
  573. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  574. - name: Remove data before upload
  575. if: ${{ failure() }}
  576. run: scripts/remove_data.sh inappmessaging
  577. - uses: actions/upload-artifact@v4
  578. if: ${{ failure() }}
  579. with:
  580. name: quickstart_artifacts_inappmessaging
  581. path: quickstart-ios/
  582. quickstart_framework_messaging:
  583. # Don't run on private repo.
  584. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  585. needs: package-head
  586. env:
  587. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  588. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  589. SDK: "Messaging"
  590. strategy:
  591. matrix:
  592. os: [macos-13, macos-14]
  593. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  594. include:
  595. - os: macos-13
  596. xcode: Xcode_15.2
  597. - os: macos-14
  598. xcode: Xcode_16
  599. runs-on: ${{ matrix.os }}
  600. steps:
  601. - uses: actions/checkout@v4
  602. - name: Get framework dir
  603. uses: actions/download-artifact@v4.1.7
  604. with:
  605. name: ${{ matrix.artifact }}
  606. - uses: ruby/setup-ruby@v1
  607. - name: Setup Bundler
  608. run: ./scripts/setup_bundler.sh
  609. - name: Move frameworks
  610. run: |
  611. mkdir -p "${HOME}"/ios_frameworks/
  612. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  613. - uses: actions/checkout@v4
  614. - name: Setup quickstart
  615. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  616. "${HOME}"/ios_frameworks/Firebase/FirebaseMessaging/* \
  617. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  618. - name: Xcode
  619. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  620. - name: Setup swift quickstart
  621. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  622. - name: Install Secret GoogleService-Info.plist
  623. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  624. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  625. - name: Test Quickstart
  626. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  627. - name: Test Swift Quickstart
  628. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  629. - name: Remove data before upload
  630. if: ${{ failure() }}
  631. run: scripts/remove_data.sh messaging
  632. - uses: actions/upload-artifact@v4
  633. if: ${{ failure() }}
  634. with:
  635. name: quickstart_artifacts_messaging
  636. path: quickstart-ios/
  637. quickstart_framework_storage:
  638. # Don't run on private repo.
  639. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  640. needs: package-head
  641. env:
  642. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  643. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  644. SDK: "Storage"
  645. strategy:
  646. matrix:
  647. os: [macos-13, macos-14]
  648. artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
  649. include:
  650. - os: macos-13
  651. xcode: Xcode_15.2
  652. - os: macos-14
  653. xcode: Xcode_16
  654. runs-on: ${{ matrix.os }}
  655. steps:
  656. - uses: actions/checkout@v4
  657. - name: Get framework dir
  658. uses: actions/download-artifact@v4.1.7
  659. with:
  660. name: ${{ matrix.artifact }}
  661. - uses: ruby/setup-ruby@v1
  662. - name: Setup Bundler
  663. run: ./scripts/setup_bundler.sh
  664. - name: Move frameworks
  665. run: |
  666. mkdir -p "${HOME}"/ios_frameworks/
  667. find "${GITHUB_WORKSPACE}" -name "Firebase*latest.zip" -exec unzip -d "${HOME}"/ios_frameworks/ {} +
  668. - uses: actions/checkout@v4
  669. - name: Setup quickstart
  670. env:
  671. LEGACY: true
  672. run: SAMPLE="$SDK" TARGET="${SDK}Example" scripts/setup_quickstart_framework.sh \
  673. "${HOME}"/ios_frameworks/Firebase/FirebaseStorage/* \
  674. "${HOME}"/ios_frameworks/Firebase/FirebaseAuth/* \
  675. "${HOME}"/ios_frameworks/Firebase/FirebaseAnalytics/*
  676. - name: Xcode
  677. run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app/Contents/Developer
  678. - name: Setup swift quickstart
  679. env:
  680. LEGACY: true
  681. run: SAMPLE="$SDK" TARGET="${SDK}ExampleSwift" scripts/setup_quickstart_framework.sh
  682. - name: Install Secret GoogleService-Info.plist
  683. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  684. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  685. - name: Test Quickstart
  686. env:
  687. LEGACY: true
  688. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}")
  689. - name: Test Swift Quickstart
  690. env:
  691. LEGACY: true
  692. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_framework.sh "${SDK}" swift)
  693. - name: Remove data before upload
  694. env:
  695. LEGACY: true
  696. if: ${{ failure() }}
  697. run: scripts/remove_data.sh storage
  698. - uses: actions/upload-artifact@v4
  699. if: ${{ failure() }}
  700. with:
  701. name: quickstart_artifacts_storage
  702. path: quickstart-ios/