zip.yml 28 KB

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