release.yml 28 KB

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