release.yml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. name: release
  2. on:
  3. pull_request:
  4. paths:
  5. - 'scripts/release_testing_setup.sh'
  6. - '.github/workflows/release.yml'
  7. - 'Gemfile*'
  8. workflow_dispatch:
  9. schedule:
  10. # Run every day at 9pm (PST) - cron uses UTC times
  11. - cron: '0 5 * * *'
  12. concurrency:
  13. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  14. cancel-in-progress: true
  15. jobs:
  16. specs_checking:
  17. # Don't run on private repo unless it is a PR.
  18. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  19. runs-on: macos-14
  20. env:
  21. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  22. # The SDK repo will be cloned to this dir and podspecs from
  23. # 'podspec_repo_branch' of this repo will be validated and pushed to the
  24. # testing repo.
  25. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  26. local_repo: specsreleasing
  27. podspec_repo_branch: main
  28. outputs:
  29. matrix: ${{ steps.generate_matrix.outputs.matrix }}
  30. steps:
  31. - name: Checkout code
  32. uses: actions/checkout@v4
  33. - name: Generate matrix
  34. id: generate_matrix
  35. run: |
  36. cd "${GITHUB_WORKSPACE}/ReleaseTooling"
  37. swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation
  38. echo "::set-output name=matrix::{\"include\":$( cat output.json )}"
  39. - name: Get token
  40. run: |
  41. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  42. bot-access.txt "$bot_token_secret"
  43. - name: Update SpecsReleasing repo setup
  44. run: |
  45. botaccess=`cat bot-access.txt`
  46. BOT_TOKEN="${botaccess}" test_version="${nightly_version}" \
  47. sdk_version_config="${GITHUB_WORKSPACE}/scripts/create_spec_repo/RC_firebase_sdk.textproto" \
  48. local_sdk_repo_dir="${local_sdk_repo_dir}" \
  49. podspec_repo_branch="${podspec_repo_branch}" \
  50. scripts/release_testing_setup.sh release_testing
  51. - name: Clean spec repo
  52. run: |
  53. botaccess=`cat bot-access.txt`
  54. git clone --quiet https://"$botaccess"@github.com/Firebase/SpecsReleasing.git "${local_repo}"
  55. cd "${local_repo}"
  56. # Remove all unhidden dirs, i.e. all podspec dir from the spec repo.
  57. rm -Rf -- */
  58. git add .
  59. # commit without diff will throw an error. `git diff --exit-code` can avoid such error.
  60. git diff --staged --exit-code || git commit -m "Empty spec repo."
  61. git push
  62. - name: Clean Artifacts
  63. if: ${{ always() }}
  64. run: |
  65. rm -rf bot-access.txt
  66. - uses: actions/upload-artifact@v4
  67. with:
  68. name: firebase-ios-sdk
  69. path: |
  70. ${{ env.local_sdk_repo_dir }}/*.podspec
  71. ${{ env.local_sdk_repo_dir }}/*.podspec.json
  72. buildup_SpecsReleasing_repo_FirebaseCore:
  73. needs: specs_checking
  74. # Don't run on private repo unless it is a PR.
  75. if: github.repository == 'Firebase/firebase-ios-sdk'
  76. runs-on: macos-14
  77. env:
  78. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  79. local_repo: specsreleasing
  80. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  81. targeted_pod: FirebaseCore
  82. steps:
  83. - uses: actions/checkout@v4
  84. - uses: actions/download-artifact@v4
  85. with:
  86. name: firebase-ios-sdk
  87. path: ${{ env.local_sdk_repo_dir }}
  88. - name: Get token
  89. run: |
  90. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  91. bot-access.txt "$bot_token_secret"
  92. - name: Update SpecsReleasing repo
  93. run: |
  94. botaccess=`cat bot-access.txt`
  95. cd scripts/create_spec_repo/
  96. swift build
  97. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  98. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  99. --sdk-repo "${local_sdk_repo_dir}" \
  100. --local-spec-repo-name "${local_repo}" \
  101. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  102. --include-pods "${targeted_pod}" --keep-repo
  103. - name: Clean Artifacts
  104. if: ${{ always() }}
  105. run: |
  106. pod repo remove "${local_repo}"
  107. rm -rf bot-access.txt
  108. buildup_SpecsReleasing_repo:
  109. needs: [buildup_SpecsReleasing_repo_FirebaseCore, specs_checking]
  110. # Don't run on private repo unless it is a PR.
  111. if: github.repository == 'Firebase/firebase-ios-sdk'
  112. runs-on: macos-14
  113. strategy:
  114. fail-fast: false
  115. matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}}
  116. env:
  117. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  118. local_repo: specsreleasing
  119. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  120. targeted_pod: ${{ matrix.podspec }}
  121. steps:
  122. - uses: actions/checkout@v4
  123. - uses: actions/download-artifact@v4
  124. with:
  125. name: firebase-ios-sdk
  126. path: ${{ env.local_sdk_repo_dir }}
  127. - name: Get token
  128. run: |
  129. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  130. bot-access.txt "$bot_token_secret"
  131. - name: Update SpecsReleasing repo
  132. run: |
  133. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  134. botaccess=`cat bot-access.txt`
  135. cd scripts/create_spec_repo/
  136. swift build
  137. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  138. # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the
  139. # command if ${ALLOWWARNINGS} is not null.
  140. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  141. --sdk-repo "${local_sdk_repo_dir}" \
  142. --local-spec-repo-name "${local_repo}" \
  143. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  144. --include-pods "${targeted_pod}" \
  145. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  146. - name: Clean Artifacts
  147. if: ${{ always() }}
  148. run: |
  149. pod repo remove "${local_repo}"
  150. rm -rf bot-access.txt
  151. abtesting_quickstart:
  152. # Don't run on private repo unless it is a PR.
  153. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  154. needs: buildup_SpecsReleasing_repo
  155. env:
  156. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  157. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  158. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  159. runs-on: macos-14
  160. steps:
  161. - uses: actions/checkout@v4
  162. - uses: ruby/setup-ruby@v1
  163. - name: Get token
  164. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  165. bot-access.txt "$bot_token_secret"
  166. - name: Setup testing repo and quickstart
  167. env:
  168. LEGACY: true
  169. run: |
  170. botaccess=`cat bot-access.txt`
  171. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  172. - name: Install Secret GoogleService-Info.plist
  173. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  174. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  175. - name: Test swift quickstart
  176. env:
  177. LEGACY: true
  178. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  179. - name: Remove data before upload
  180. env:
  181. LEGACY: true
  182. if: ${{ failure() }}
  183. run: scripts/remove_data.sh config
  184. - uses: actions/upload-artifact@v4
  185. if: ${{ failure() }}
  186. with:
  187. name: quickstart_artifacts_abtesting
  188. path: quickstart-ios/
  189. auth_quickstart:
  190. # Don't run on private repo unless it is a PR.
  191. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  192. needs: buildup_SpecsReleasing_repo
  193. env:
  194. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  195. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  196. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  197. runs-on: macos-14
  198. steps:
  199. - uses: actions/checkout@v4
  200. - uses: ruby/setup-ruby@v1
  201. - name: Get token
  202. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  203. bot-access.txt "$bot_token_secret"
  204. - name: Setup testing repo and quickstart
  205. run: |
  206. botaccess=`cat bot-access.txt`
  207. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  208. - name: Install Secret GoogleService-Info.plist
  209. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  210. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  211. - name: Test swift quickstart
  212. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  213. - name: Remove data before upload
  214. if: ${{ failure() }}
  215. run: scripts/remove_data.sh authentication
  216. - uses: actions/upload-artifact@v4
  217. if: ${{ failure() }}
  218. with:
  219. name: quickstart_artifacts_auth
  220. path: quickstart-ios/
  221. crashlytics_quickstart:
  222. # Don't run on private repo unless it is a PR.
  223. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  224. needs: buildup_SpecsReleasing_repo
  225. env:
  226. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  227. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  228. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  229. testing_repo_dir: "/tmp/test/"
  230. testing_repo: "firebase-ios-sdk"
  231. runs-on: macos-14
  232. steps:
  233. - uses: actions/checkout@v4
  234. - uses: ruby/setup-ruby@v1
  235. - name: Get token
  236. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  237. bot-access.txt "$bot_token_secret"
  238. - name: Setup testing repo and quickstart
  239. env:
  240. LEGACY: true
  241. run: |
  242. botaccess=`cat bot-access.txt`
  243. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  244. - name: Install Secret GoogleService-Info.plist
  245. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  246. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  247. - name: Test objc quickstart
  248. env:
  249. LEGACY: true
  250. run: |
  251. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  252. # Set the deployed pod location of run and upload-symbols with the development pod version.
  253. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  254. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  255. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true)
  256. - name: Test swift quickstart
  257. env:
  258. LEGACY: true
  259. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  260. - name: Remove data before upload
  261. env:
  262. LEGACY: true
  263. if: ${{ failure() }}
  264. run: scripts/remove_data.sh crashlytics
  265. - uses: actions/upload-artifact@v4
  266. if: ${{ failure() }}
  267. with:
  268. name: quickstart_artifacts_crashlytics
  269. path: quickstart-ios/
  270. database_quickstart:
  271. # Don't run on private repo unless it is a PR.
  272. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  273. needs: buildup_SpecsReleasing_repo
  274. env:
  275. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  276. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  277. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  278. testing_repo_dir: "/tmp/test/"
  279. testing_repo: "firebase-ios-sdk"
  280. runs-on: macos-14
  281. steps:
  282. - uses: actions/checkout@v4
  283. - uses: ruby/setup-ruby@v1
  284. - name: Get token
  285. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  286. bot-access.txt "$bot_token_secret"
  287. - name: Setup testing repo and quickstart
  288. run: |
  289. botaccess=`cat bot-access.txt`
  290. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  291. - name: Install Secret GoogleService-Info.plist
  292. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  293. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  294. - name: Test objc quickstart
  295. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  296. - name: Test swift quickstart
  297. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  298. - name: Remove data before upload
  299. if: ${{ failure() }}
  300. run: scripts/remove_data.sh database
  301. - uses: actions/upload-artifact@v4
  302. if: ${{ failure() }}
  303. with:
  304. name: quickstart_artifacts_database
  305. path: quickstart-ios/
  306. dynamiclinks_quickstart:
  307. # Don't run on private repo unless it is a PR.
  308. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  309. needs: buildup_SpecsReleasing_repo
  310. env:
  311. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  312. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  313. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  314. testing_repo_dir: "/tmp/test/"
  315. testing_repo: "firebase-ios-sdk"
  316. runs-on: macos-14
  317. steps:
  318. - uses: actions/checkout@v4
  319. - uses: ruby/setup-ruby@v1
  320. - name: Get token
  321. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  322. bot-access.txt "$bot_token_secret"
  323. - name: Setup testing repo and quickstart
  324. run: |
  325. botaccess=`cat bot-access.txt`
  326. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks nightly_release_testing
  327. - name: Install Secret GoogleService-Info.plist
  328. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  329. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  330. - name: Update Environment Variable For DynamicLinks
  331. run: |
  332. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  333. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  334. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  335. - name: Test objc quickstart
  336. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  337. - name: Test swift quickstart
  338. if: ${{ always() }}
  339. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  340. - name: Remove data before upload
  341. if: ${{ failure() }}
  342. run: scripts/remove_data.sh dynamiclinks
  343. - uses: actions/upload-artifact@v4
  344. if: ${{ failure() }}
  345. with:
  346. name: quickstart_artifacts_dynamiclinks
  347. path: quickstart-ios/
  348. firestore_quickstart:
  349. # Don't run on private repo unless it is a PR.
  350. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  351. needs: buildup_SpecsReleasing_repo
  352. env:
  353. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  354. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  355. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  356. testing_repo_dir: "/tmp/test/"
  357. testing_repo: "firebase-ios-sdk"
  358. runs-on: macos-14
  359. steps:
  360. - uses: actions/checkout@v4
  361. - uses: ruby/setup-ruby@v1
  362. - name: Get token
  363. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  364. bot-access.txt "$bot_token_secret"
  365. - name: Setup testing repo and quickstart
  366. run: |
  367. botaccess=`cat bot-access.txt`
  368. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  369. - name: Install Secret GoogleService-Info.plist
  370. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  371. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  372. - name: Test swift quickstart
  373. run: ([ -z $plist_secret ] ||
  374. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  375. - name: Remove data before upload
  376. if: ${{ failure() }}
  377. run: scripts/remove_data.sh firestore
  378. - uses: actions/upload-artifact@v4
  379. if: ${{ failure() }}
  380. with:
  381. name: quickstart_artifacts_firestore
  382. path: quickstart-ios/
  383. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  384. # functions_quickstart:
  385. # # Don't run on private repo unless it is a PR.
  386. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  387. # needs: buildup_SpecsReleasing_repo
  388. # env:
  389. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  390. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  391. # bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  392. # testing_repo_dir: "/tmp/test/"
  393. # testing_repo: "firebase-ios-sdk"
  394. # LEGACY: true
  395. # runs-on: macos-12
  396. # steps:
  397. # - uses: actions/checkout@v4
  398. # - uses: ruby/setup-ruby@v1
  399. # - name: Get token
  400. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  401. # bot-access.txt "$bot_token_secret"
  402. # - name: Setup testing repo and quickstart
  403. # run: |
  404. # botaccess=`cat bot-access.txt`
  405. # BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  406. # - name: install secret googleservice-info.plist
  407. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  408. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  409. # - name: Setup custom URL scheme
  410. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  411. # - name: Test objc quickstart
  412. # run: ([ -z $plist_secret ] ||
  413. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  414. # - name: Test swift quickstart
  415. # run: ([ -z $plist_secret ] ||
  416. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  417. # - name: Remove data before upload
  418. # if: ${{ failure() }}
  419. # run: scripts/remove_data.sh functions
  420. # - uses: actions/upload-artifact@v4
  421. # if: ${{ failure() }}
  422. # with:
  423. # name: quickstart_artifacts_functions
  424. # path: quickstart-ios/
  425. inappmessaging_quickstart:
  426. # Don't run on private repo unless it is a PR.
  427. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  428. needs: buildup_SpecsReleasing_repo
  429. env:
  430. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  431. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  432. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  433. testing_repo_dir: "/tmp/test/"
  434. testing_repo: "firebase-ios-sdk"
  435. runs-on: macos-14
  436. steps:
  437. - uses: actions/checkout@v4
  438. - uses: ruby/setup-ruby@v1
  439. - name: Get token
  440. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  441. bot-access.txt "$bot_token_secret"
  442. - name: Setup testing repo and quickstart
  443. run: |
  444. botaccess=`cat bot-access.txt`
  445. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  446. - name: install secret googleservice-info.plist
  447. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  448. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  449. - name: Test objc quickstart
  450. run: ([ -z $plist_secret ] ||
  451. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  452. - name: Test swift quickstart
  453. run: ([ -z $plist_secret ] ||
  454. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  455. - name: Remove data before upload
  456. if: ${{ failure() }}
  457. run: scripts/remove_data.sh inappmessaging
  458. - uses: actions/upload-artifact@v4
  459. if: ${{ failure() }}
  460. with:
  461. name: quickstart_artifacts_inappmessaging
  462. path: quickstart-ios/
  463. messaging_quickstart:
  464. # Don't run on private repo unless it is a PR.
  465. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  466. needs: buildup_SpecsReleasing_repo
  467. env:
  468. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  469. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  470. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  471. testing_repo_dir: "/tmp/test/"
  472. testing_repo: "firebase-ios-sdk"
  473. runs-on: macos-14
  474. steps:
  475. - uses: actions/checkout@v4
  476. - uses: ruby/setup-ruby@v1
  477. - name: Get token
  478. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  479. bot-access.txt "$bot_token_secret"
  480. - name: Setup testing repo and quickstart
  481. run: |
  482. botaccess=`cat bot-access.txt`
  483. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  484. - name: Install Secret GoogleService-Info.plist
  485. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  486. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  487. - name: Test objc quickstart
  488. run: ([ -z $plist_secret ] ||
  489. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  490. - name: Test swift quickstart
  491. run: ([ -z $plist_secret ] ||
  492. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  493. - name: Remove data before upload
  494. if: ${{ failure() }}
  495. run: scripts/remove_data.sh messaging
  496. - uses: actions/upload-artifact@v4
  497. if: ${{ failure() }}
  498. with:
  499. name: quickstart_artifacts_messaging
  500. path: quickstart-ios/
  501. remoteconfig_quickstart:
  502. # Don't run on private repo unless it is a PR.
  503. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  504. needs: buildup_SpecsReleasing_repo
  505. env:
  506. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  507. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  508. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  509. runs-on: macos-14
  510. steps:
  511. - uses: actions/checkout@v4
  512. - uses: ruby/setup-ruby@v1
  513. - name: Get token
  514. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  515. bot-access.txt "$bot_token_secret"
  516. - name: Setup testing repo and quickstart
  517. run: |
  518. botaccess=`cat bot-access.txt`
  519. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  520. - name: Install Secret GoogleService-Info.plist
  521. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  522. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  523. - name: Test Swift Quickstart
  524. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  525. - name: Remove data before upload
  526. if: ${{ failure() }}
  527. run: scripts/remove_data.sh config
  528. - uses: actions/upload-artifact@v4
  529. if: ${{ failure() }}
  530. with:
  531. name: quickstart_artifacts_config
  532. path: quickstart-ios/
  533. storage_quickstart:
  534. # Don't run on private repo unless it is a PR.
  535. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  536. needs: buildup_SpecsReleasing_repo
  537. env:
  538. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  539. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  540. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  541. testing_repo_dir: "/tmp/test/"
  542. testing_repo: "firebase-ios-sdk"
  543. LEGACY: true
  544. runs-on: macos-14
  545. steps:
  546. - uses: actions/checkout@v4
  547. - uses: ruby/setup-ruby@v1
  548. - name: Get token
  549. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  550. bot-access.txt "$bot_token_secret"
  551. - name: Setup testing repo and quickstart
  552. run: |
  553. botaccess=`cat bot-access.txt`
  554. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  555. - name: Install Secret GoogleService-Info.plist
  556. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  557. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  558. - name: Test objc quickstart
  559. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true)
  560. - name: Test swift quickstart
  561. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  562. - name: Remove data before upload
  563. if: ${{ failure() }}
  564. run: scripts/remove_data.sh storage
  565. - uses: actions/upload-artifact@v4
  566. if: ${{ failure() }}
  567. with:
  568. name: quickstart_artifacts_storage
  569. path: quickstart-ios/
  570. performance_quickstart:
  571. # Don't run on private repo unless it is a PR.
  572. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  573. needs: buildup_SpecsReleasing_repo
  574. env:
  575. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  576. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  577. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  578. testing_repo_dir: "/tmp/test/"
  579. testing_repo: "firebase-ios-sdk"
  580. runs-on: macos-14
  581. steps:
  582. - uses: actions/checkout@v4
  583. - uses: ruby/setup-ruby@v1
  584. - name: Get token
  585. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  586. bot-access.txt "$bot_token_secret"
  587. - name: Setup testing repo and quickstart
  588. run: |
  589. botaccess=`cat bot-access.txt`
  590. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  591. - name: Install Secret GoogleService-Info.plist
  592. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  593. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  594. - name: Test objc quickstart
  595. run: |
  596. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true)
  597. - name: Test swift quickstart
  598. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  599. - name: Remove data before upload
  600. if: ${{ failure() }}
  601. run: scripts/remove_data.sh performance
  602. - uses: actions/upload-artifact@v4
  603. if: ${{ failure() }}
  604. with:
  605. name: quickstart_artifacts_performance
  606. path: quickstart-ios/