zip.yml 32 KB

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