release.yml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608
  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'
  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-14
  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: Setup testing repo and quickstart
  199. run: |
  200. botaccess=`cat bot-access.txt`
  201. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  202. - name: Install Secret GoogleService-Info.plist
  203. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  204. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  205. - name: Test swift quickstart
  206. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  207. - name: Remove data before upload
  208. if: ${{ failure() }}
  209. run: scripts/remove_data.sh authentication
  210. - uses: actions/upload-artifact@v4
  211. if: ${{ failure() }}
  212. with:
  213. name: quickstart_artifacts_auth
  214. path: quickstart-ios/
  215. crashlytics_quickstart:
  216. # Don't run on private repo unless it is a PR.
  217. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  218. needs: buildup_SpecsReleasing_repo
  219. env:
  220. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  221. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  222. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  223. testing_repo_dir: "/tmp/test/"
  224. testing_repo: "firebase-ios-sdk"
  225. runs-on: macos-14
  226. steps:
  227. - uses: actions/checkout@v4
  228. - uses: ruby/setup-ruby@v1
  229. - name: Get token
  230. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  231. bot-access.txt "$bot_token_secret"
  232. - name: Setup testing repo and quickstart
  233. env:
  234. LEGACY: true
  235. run: |
  236. botaccess=`cat bot-access.txt`
  237. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  238. - name: Install Secret GoogleService-Info.plist
  239. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  240. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  241. - name: Test swift quickstart
  242. env:
  243. LEGACY: true
  244. run: |
  245. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  246. # Set the deployed pod location of run and upload-symbols with the development pod version.
  247. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  248. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  249. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  250. - name: Remove data before upload
  251. env:
  252. LEGACY: true
  253. if: ${{ failure() }}
  254. run: scripts/remove_data.sh crashlytics
  255. - uses: actions/upload-artifact@v4
  256. if: ${{ failure() }}
  257. with:
  258. name: quickstart_artifacts_crashlytics
  259. path: quickstart-ios/
  260. database_quickstart:
  261. # Don't run on private repo unless it is a PR.
  262. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  263. needs: buildup_SpecsReleasing_repo
  264. env:
  265. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  266. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  267. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  268. testing_repo_dir: "/tmp/test/"
  269. testing_repo: "firebase-ios-sdk"
  270. runs-on: macos-14
  271. steps:
  272. - uses: actions/checkout@v4
  273. - uses: ruby/setup-ruby@v1
  274. - name: Get token
  275. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  276. bot-access.txt "$bot_token_secret"
  277. - name: Setup testing repo and quickstart
  278. run: |
  279. botaccess=`cat bot-access.txt`
  280. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  281. - name: Install Secret GoogleService-Info.plist
  282. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  283. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  284. - name: Test objc quickstart
  285. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  286. - name: Test swift quickstart
  287. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  288. - name: Remove data before upload
  289. if: ${{ failure() }}
  290. run: scripts/remove_data.sh database
  291. - uses: actions/upload-artifact@v4
  292. if: ${{ failure() }}
  293. with:
  294. name: quickstart_artifacts_database
  295. path: quickstart-ios/
  296. dynamiclinks_quickstart:
  297. # Don't run on private repo unless it is a PR.
  298. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  299. needs: buildup_SpecsReleasing_repo
  300. env:
  301. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  302. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  303. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  304. testing_repo_dir: "/tmp/test/"
  305. testing_repo: "firebase-ios-sdk"
  306. runs-on: macos-14
  307. steps:
  308. - uses: actions/checkout@v4
  309. - uses: ruby/setup-ruby@v1
  310. - name: Get token
  311. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  312. bot-access.txt "$bot_token_secret"
  313. - name: Setup testing repo and quickstart
  314. run: |
  315. botaccess=`cat bot-access.txt`
  316. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks nightly_release_testing
  317. - name: Install Secret GoogleService-Info.plist
  318. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  319. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  320. - name: Update Environment Variable For DynamicLinks
  321. run: |
  322. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  323. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  324. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  325. - name: Test objc quickstart
  326. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  327. - name: Test swift quickstart
  328. if: ${{ always() }}
  329. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  330. - name: Remove data before upload
  331. if: ${{ failure() }}
  332. run: scripts/remove_data.sh dynamiclinks
  333. - uses: actions/upload-artifact@v4
  334. if: ${{ failure() }}
  335. with:
  336. name: quickstart_artifacts_dynamiclinks
  337. path: quickstart-ios/
  338. firestore_quickstart:
  339. # Don't run on private repo unless it is a PR.
  340. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  341. needs: buildup_SpecsReleasing_repo
  342. env:
  343. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  344. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  345. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  346. testing_repo_dir: "/tmp/test/"
  347. testing_repo: "firebase-ios-sdk"
  348. runs-on: macos-14
  349. steps:
  350. - uses: actions/checkout@v4
  351. - uses: ruby/setup-ruby@v1
  352. - name: Get token
  353. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  354. bot-access.txt "$bot_token_secret"
  355. - name: Setup testing repo and quickstart
  356. run: |
  357. botaccess=`cat bot-access.txt`
  358. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  359. - name: Install Secret GoogleService-Info.plist
  360. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  361. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  362. - name: Test swift quickstart
  363. run: ([ -z $plist_secret ] ||
  364. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  365. - name: Remove data before upload
  366. if: ${{ failure() }}
  367. run: scripts/remove_data.sh firestore
  368. - uses: actions/upload-artifact@v4
  369. if: ${{ failure() }}
  370. with:
  371. name: quickstart_artifacts_firestore
  372. path: quickstart-ios/
  373. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  374. # functions_quickstart:
  375. # # Don't run on private repo unless it is a PR.
  376. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  377. # needs: buildup_SpecsReleasing_repo
  378. # env:
  379. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  380. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  381. # bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  382. # testing_repo_dir: "/tmp/test/"
  383. # testing_repo: "firebase-ios-sdk"
  384. # LEGACY: true
  385. # runs-on: macos-12
  386. # steps:
  387. # - uses: actions/checkout@v4
  388. # - uses: ruby/setup-ruby@v1
  389. # - name: Get token
  390. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  391. # bot-access.txt "$bot_token_secret"
  392. # - name: Setup testing repo and quickstart
  393. # run: |
  394. # botaccess=`cat bot-access.txt`
  395. # BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  396. # - name: install secret googleservice-info.plist
  397. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  398. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  399. # - name: Setup custom URL scheme
  400. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  401. # - name: Test objc quickstart
  402. # run: ([ -z $plist_secret ] ||
  403. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  404. # - name: Test swift quickstart
  405. # run: ([ -z $plist_secret ] ||
  406. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  407. # - name: Remove data before upload
  408. # if: ${{ failure() }}
  409. # run: scripts/remove_data.sh functions
  410. # - uses: actions/upload-artifact@v4
  411. # if: ${{ failure() }}
  412. # with:
  413. # name: quickstart_artifacts_functions
  414. # path: quickstart-ios/
  415. inappmessaging_quickstart:
  416. # Don't run on private repo unless it is a PR.
  417. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  418. needs: buildup_SpecsReleasing_repo
  419. env:
  420. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  421. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  422. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  423. testing_repo_dir: "/tmp/test/"
  424. testing_repo: "firebase-ios-sdk"
  425. runs-on: macos-14
  426. steps:
  427. - uses: actions/checkout@v4
  428. - uses: ruby/setup-ruby@v1
  429. - name: Get token
  430. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  431. bot-access.txt "$bot_token_secret"
  432. - name: Setup testing repo and quickstart
  433. run: |
  434. botaccess=`cat bot-access.txt`
  435. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  436. - name: install secret googleservice-info.plist
  437. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  438. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  439. - name: Test objc quickstart
  440. run: ([ -z $plist_secret ] ||
  441. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  442. - name: Test swift quickstart
  443. run: ([ -z $plist_secret ] ||
  444. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  445. - name: Remove data before upload
  446. if: ${{ failure() }}
  447. run: scripts/remove_data.sh inappmessaging
  448. - uses: actions/upload-artifact@v4
  449. if: ${{ failure() }}
  450. with:
  451. name: quickstart_artifacts_inappmessaging
  452. path: quickstart-ios/
  453. messaging_quickstart:
  454. # Don't run on private repo unless it is a PR.
  455. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  456. needs: buildup_SpecsReleasing_repo
  457. env:
  458. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  459. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  460. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  461. testing_repo_dir: "/tmp/test/"
  462. testing_repo: "firebase-ios-sdk"
  463. runs-on: macos-14
  464. steps:
  465. - uses: actions/checkout@v4
  466. - uses: ruby/setup-ruby@v1
  467. - name: Get token
  468. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  469. bot-access.txt "$bot_token_secret"
  470. - name: Setup testing repo and quickstart
  471. run: |
  472. botaccess=`cat bot-access.txt`
  473. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  474. - name: Install Secret GoogleService-Info.plist
  475. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  476. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  477. - name: Test objc quickstart
  478. run: ([ -z $plist_secret ] ||
  479. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  480. - name: Test swift quickstart
  481. run: ([ -z $plist_secret ] ||
  482. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  483. - name: Remove data before upload
  484. if: ${{ failure() }}
  485. run: scripts/remove_data.sh messaging
  486. - uses: actions/upload-artifact@v4
  487. if: ${{ failure() }}
  488. with:
  489. name: quickstart_artifacts_messaging
  490. path: quickstart-ios/
  491. remoteconfig_quickstart:
  492. # Don't run on private repo unless it is a PR.
  493. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  494. needs: buildup_SpecsReleasing_repo
  495. env:
  496. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  497. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  498. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  499. runs-on: macos-14
  500. steps:
  501. - uses: actions/checkout@v4
  502. - uses: ruby/setup-ruby@v1
  503. - name: Get token
  504. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  505. bot-access.txt "$bot_token_secret"
  506. - name: Setup testing repo and quickstart
  507. run: |
  508. botaccess=`cat bot-access.txt`
  509. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  510. - name: Install Secret GoogleService-Info.plist
  511. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  512. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  513. - name: Test Swift Quickstart
  514. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  515. - name: Remove data before upload
  516. if: ${{ failure() }}
  517. run: scripts/remove_data.sh config
  518. - uses: actions/upload-artifact@v4
  519. if: ${{ failure() }}
  520. with:
  521. name: quickstart_artifacts_config
  522. path: quickstart-ios/
  523. storage_quickstart:
  524. # Don't run on private repo unless it is a PR.
  525. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  526. needs: buildup_SpecsReleasing_repo
  527. env:
  528. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  529. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  530. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  531. testing_repo_dir: "/tmp/test/"
  532. testing_repo: "firebase-ios-sdk"
  533. LEGACY: true
  534. runs-on: macos-14
  535. steps:
  536. - uses: actions/checkout@v4
  537. - uses: ruby/setup-ruby@v1
  538. - name: Get token
  539. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  540. bot-access.txt "$bot_token_secret"
  541. - name: Setup testing repo and quickstart
  542. run: |
  543. botaccess=`cat bot-access.txt`
  544. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  545. - name: Install Secret GoogleService-Info.plist
  546. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  547. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  548. - name: Test swift quickstart
  549. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  550. - name: Remove data before upload
  551. if: ${{ failure() }}
  552. run: scripts/remove_data.sh storage
  553. - uses: actions/upload-artifact@v4
  554. if: ${{ failure() }}
  555. with:
  556. name: quickstart_artifacts_storage
  557. path: quickstart-ios/
  558. performance_quickstart:
  559. # Don't run on private repo unless it is a PR.
  560. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  561. needs: buildup_SpecsReleasing_repo
  562. env:
  563. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  564. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  565. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  566. testing_repo_dir: "/tmp/test/"
  567. testing_repo: "firebase-ios-sdk"
  568. runs-on: macos-14
  569. steps:
  570. - uses: actions/checkout@v4
  571. - uses: ruby/setup-ruby@v1
  572. - name: Get token
  573. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  574. bot-access.txt "$bot_token_secret"
  575. - name: Setup testing repo and quickstart
  576. run: |
  577. botaccess=`cat bot-access.txt`
  578. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  579. - name: Install Secret GoogleService-Info.plist
  580. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  581. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  582. - name: Test swift quickstart
  583. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  584. - name: Remove data before upload
  585. if: ${{ failure() }}
  586. run: scripts/remove_data.sh performance
  587. - uses: actions/upload-artifact@v4
  588. if: ${{ failure() }}
  589. with:
  590. name: quickstart_artifacts_performance
  591. path: quickstart-ios/