zip.yml 32 KB

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