zip.yml 31 KB

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