zip.yml 32 KB

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