release.yml 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  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. env:
  13. FIREBASE_CI: true
  14. concurrency:
  15. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  16. cancel-in-progress: true
  17. jobs:
  18. specs_checking:
  19. # Don't run on private repo unless it is a PR.
  20. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  21. runs-on: macos-14
  22. env:
  23. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  24. local_repo: specsreleasing
  25. podspec_repo_branch: main
  26. outputs:
  27. matrix: ${{ steps.generate_matrix.outputs.matrix }}
  28. steps:
  29. - name: Checkout code
  30. uses: actions/checkout@v4
  31. with:
  32. fetch-depth: 0
  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: Update SpecsReleasing repo setup
  40. run: |
  41. podspec_repo_branch="${podspec_repo_branch}" \
  42. scripts/release_testing_setup.sh release_testing
  43. - name: Clean spec repo
  44. run: |
  45. git clone --quiet https://"$botaccess"@github.com/Firebase/SpecsReleasing.git "${local_repo}"
  46. cd "${local_repo}"
  47. # Remove all unhidden dirs, i.e. all podspec dir from the spec repo.
  48. rm -Rf -- */
  49. git add .
  50. # commit without diff will throw an error. `git diff --exit-code` can avoid such error.
  51. git diff --staged --exit-code || git commit -m "Empty spec repo."
  52. # Attempt to push. If it fails, print a detailed error message and exit.
  53. git push || {
  54. echo "--------------------------------------------------------------------------------"
  55. echo "ERROR: Failed to push to Firebase/SpecsReleasing."
  56. echo "This is likely due to an expired Personal Access Token (PAT)."
  57. echo "Please take the following steps to resolve this:"
  58. echo "1. Refresh the OSS bot's scoped access token for the Firebase/SpecsReleasing repo."
  59. echo " This can be done in the OSS bot's GitHub account settings. Ensure the token "
  60. echo " has the 'public_repo' scope."
  61. echo "2. Update the 'RELEASE_TESTING_PAT' secret in this repo's settings."
  62. echo " (https://github.com/Firebase/firebase-ios-sdk/settings/secrets/actions)"
  63. echo "--------------------------------------------------------------------------------"
  64. exit 1
  65. }
  66. - uses: actions/upload-artifact@v4
  67. with:
  68. name: firebase-ios-sdk
  69. path: |
  70. *.podspec
  71. *.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-15
  77. env:
  78. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  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.1.7
  85. with:
  86. name: firebase-ios-sdk
  87. path: ${{ env.local_sdk_repo_dir }}
  88. - name: Update SpecsReleasing repo
  89. run: |
  90. cd scripts/create_spec_repo/
  91. swift build
  92. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  93. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  94. --sdk-repo "${local_sdk_repo_dir}" \
  95. --local-spec-repo-name "${local_repo}" \
  96. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  97. --include-pods "${targeted_pod}" --keep-repo
  98. - name: Clean Artifacts
  99. if: ${{ always() }}
  100. run: pod repo remove "${local_repo}"
  101. buildup_SpecsReleasing_repo:
  102. needs: [buildup_SpecsReleasing_repo_FirebaseCore, specs_checking]
  103. # Don't run on private repo unless it is a PR.
  104. if: github.repository == 'Firebase/firebase-ios-sdk' || github.event_name == 'workflow_dispatch'
  105. runs-on: macos-15
  106. strategy:
  107. fail-fast: false
  108. matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}}
  109. env:
  110. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  111. local_repo: specsreleasing
  112. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  113. targeted_pod: ${{ matrix.podspec }}
  114. steps:
  115. - uses: actions/checkout@v4
  116. - uses: actions/download-artifact@v4.1.7
  117. with:
  118. name: firebase-ios-sdk
  119. path: ${{ env.local_sdk_repo_dir }}
  120. - name: Update SpecsReleasing repo
  121. run: |
  122. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  123. cd scripts/create_spec_repo/
  124. swift build
  125. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  126. # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the
  127. # command if ${ALLOWWARNINGS} is not null.
  128. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  129. --sdk-repo "${local_sdk_repo_dir}" \
  130. --local-spec-repo-name "${local_repo}" \
  131. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  132. --include-pods "${targeted_pod}" \
  133. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  134. - name: Clean Artifacts
  135. if: ${{ always() }}
  136. run: pod repo remove "${local_repo}"
  137. abtesting_quickstart:
  138. # Don't run on private repo unless it is a PR.
  139. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  140. needs: buildup_SpecsReleasing_repo
  141. env:
  142. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  143. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  144. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  145. runs-on: macos-14
  146. steps:
  147. - uses: actions/checkout@v4
  148. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  149. - name: Setup testing repo and quickstart
  150. env:
  151. LEGACY: true
  152. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  153. - name: Install Secret GoogleService-Info.plist
  154. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  155. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  156. - name: Test swift quickstart
  157. env:
  158. LEGACY: true
  159. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  160. - name: Remove data before upload
  161. env:
  162. LEGACY: true
  163. if: ${{ failure() }}
  164. run: scripts/remove_data.sh config
  165. - uses: actions/upload-artifact@v4
  166. if: ${{ failure() }}
  167. with:
  168. name: quickstart_artifacts_abtesting
  169. path: quickstart-ios/
  170. auth_quickstart:
  171. # Don't run on private repo unless it is a PR.
  172. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  173. needs: buildup_SpecsReleasing_repo
  174. env:
  175. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  176. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  177. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  178. runs-on: macos-15
  179. steps:
  180. - uses: actions/checkout@v4
  181. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  182. - name: Xcode
  183. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  184. - name: Setup testing repo and quickstart
  185. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  186. - name: Install Secret GoogleService-Info.plist
  187. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  188. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  189. - name: Test swift quickstart
  190. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  191. - name: Remove data before upload
  192. if: ${{ failure() }}
  193. run: scripts/remove_data.sh authentication
  194. - uses: actions/upload-artifact@v4
  195. if: ${{ failure() }}
  196. with:
  197. name: quickstart_artifacts_auth
  198. path: quickstart-ios/
  199. crashlytics_quickstart:
  200. # Don't run on private repo unless it is a PR.
  201. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  202. needs: buildup_SpecsReleasing_repo
  203. env:
  204. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  205. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  206. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  207. testing_repo_dir: "/tmp/test/"
  208. testing_repo: "firebase-ios-sdk"
  209. runs-on: macos-14
  210. steps:
  211. - uses: actions/checkout@v4
  212. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  213. - name: Setup testing repo and quickstart
  214. env:
  215. LEGACY: true
  216. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  217. - name: Install Secret GoogleService-Info.plist
  218. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  219. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  220. - name: Test swift quickstart
  221. env:
  222. LEGACY: true
  223. run: |
  224. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  225. # Set the deployed pod location of run and upload-symbols with the development pod version.
  226. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  227. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  228. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  229. - name: Remove data before upload
  230. env:
  231. LEGACY: true
  232. if: ${{ failure() }}
  233. run: scripts/remove_data.sh crashlytics
  234. - uses: actions/upload-artifact@v4
  235. if: ${{ failure() }}
  236. with:
  237. name: quickstart_artifacts_crashlytics
  238. path: quickstart-ios/
  239. database_quickstart:
  240. # Don't run on private repo unless it is a PR.
  241. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  242. needs: buildup_SpecsReleasing_repo
  243. env:
  244. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  245. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  246. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  247. testing_repo_dir: "/tmp/test/"
  248. testing_repo: "firebase-ios-sdk"
  249. runs-on: macos-14
  250. steps:
  251. - uses: actions/checkout@v4
  252. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  253. - name: Setup testing repo and quickstart
  254. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  255. - name: Install Secret GoogleService-Info.plist
  256. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  257. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  258. - name: Test objc quickstart
  259. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  260. - name: Test swift quickstart
  261. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  262. - name: Remove data before upload
  263. if: ${{ failure() }}
  264. run: scripts/remove_data.sh database
  265. - uses: actions/upload-artifact@v4
  266. if: ${{ failure() }}
  267. with:
  268. name: quickstart_artifacts_database
  269. path: quickstart-ios/
  270. firestore_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. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  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@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  284. - name: Setup testing repo and quickstart
  285. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  286. - name: Install Secret GoogleService-Info.plist
  287. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  288. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  289. - name: Test swift quickstart
  290. run: ([ -z $plist_secret ] ||
  291. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  292. - name: Remove data before upload
  293. if: ${{ failure() }}
  294. run: scripts/remove_data.sh firestore
  295. - uses: actions/upload-artifact@v4
  296. if: ${{ failure() }}
  297. with:
  298. name: quickstart_artifacts_firestore
  299. path: quickstart-ios/
  300. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  301. # functions_quickstart:
  302. # # Don't run on private repo unless it is a PR.
  303. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  304. # needs: buildup_SpecsReleasing_repo
  305. # env:
  306. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  307. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  308. # botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  309. # testing_repo_dir: "/tmp/test/"
  310. # testing_repo: "firebase-ios-sdk"
  311. # LEGACY: true
  312. # runs-on: macos-12
  313. # steps:
  314. # - uses: actions/checkout@v4
  315. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  316. # - name: Setup testing repo and quickstart
  317. # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  318. # - name: install secret googleservice-info.plist
  319. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  320. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  321. # - name: Setup custom URL scheme
  322. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  323. # - name: Test objc quickstart
  324. # run: ([ -z $plist_secret ] ||
  325. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  326. # - name: Test swift quickstart
  327. # run: ([ -z $plist_secret ] ||
  328. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  329. # - name: Remove data before upload
  330. # if: ${{ failure() }}
  331. # run: scripts/remove_data.sh functions
  332. # - uses: actions/upload-artifact@v4
  333. # if: ${{ failure() }}
  334. # with:
  335. # name: quickstart_artifacts_functions
  336. # path: quickstart-ios/
  337. inappmessaging_quickstart:
  338. # Don't run on private repo unless it is a PR.
  339. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  340. needs: buildup_SpecsReleasing_repo
  341. env:
  342. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  343. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  344. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  345. testing_repo_dir: "/tmp/test/"
  346. testing_repo: "firebase-ios-sdk"
  347. runs-on: macos-14
  348. steps:
  349. - uses: actions/checkout@v4
  350. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  351. - name: Setup testing repo and quickstart
  352. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  353. - name: install secret googleservice-info.plist
  354. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  355. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  356. - name: Test objc quickstart
  357. run: ([ -z $plist_secret ] ||
  358. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  359. - name: Test swift quickstart
  360. run: ([ -z $plist_secret ] ||
  361. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  362. - name: Remove data before upload
  363. if: ${{ failure() }}
  364. run: scripts/remove_data.sh inappmessaging
  365. - uses: actions/upload-artifact@v4
  366. if: ${{ failure() }}
  367. with:
  368. name: quickstart_artifacts_inappmessaging
  369. path: quickstart-ios/
  370. messaging_quickstart:
  371. # Don't run on private repo unless it is a PR.
  372. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  373. needs: buildup_SpecsReleasing_repo
  374. env:
  375. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  376. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  377. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  378. testing_repo_dir: "/tmp/test/"
  379. testing_repo: "firebase-ios-sdk"
  380. runs-on: macos-14
  381. steps:
  382. - uses: actions/checkout@v4
  383. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  384. - name: Setup testing repo and quickstart
  385. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  386. - name: Install Secret GoogleService-Info.plist
  387. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  388. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  389. - name: Test objc quickstart
  390. run: ([ -z $plist_secret ] ||
  391. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  392. - name: Test swift quickstart
  393. run: ([ -z $plist_secret ] ||
  394. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  395. - name: Remove data before upload
  396. if: ${{ failure() }}
  397. run: scripts/remove_data.sh messaging
  398. - uses: actions/upload-artifact@v4
  399. if: ${{ failure() }}
  400. with:
  401. name: quickstart_artifacts_messaging
  402. path: quickstart-ios/
  403. remoteconfig_quickstart:
  404. # Don't run on private repo unless it is a PR.
  405. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  406. needs: buildup_SpecsReleasing_repo
  407. env:
  408. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  409. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  410. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  411. runs-on: macos-14
  412. steps:
  413. - uses: actions/checkout@v4
  414. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  415. - name: Setup testing repo and quickstart
  416. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  417. - name: Install Secret GoogleService-Info.plist
  418. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  419. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  420. - name: Test Swift Quickstart
  421. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  422. - name: Remove data before upload
  423. if: ${{ failure() }}
  424. run: scripts/remove_data.sh config
  425. - uses: actions/upload-artifact@v4
  426. if: ${{ failure() }}
  427. with:
  428. name: quickstart_artifacts_config
  429. path: quickstart-ios/
  430. storage_quickstart:
  431. # Don't run on private repo unless it is a PR.
  432. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  433. needs: buildup_SpecsReleasing_repo
  434. env:
  435. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  436. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  437. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  438. testing_repo_dir: "/tmp/test/"
  439. testing_repo: "firebase-ios-sdk"
  440. LEGACY: true
  441. runs-on: macos-14
  442. steps:
  443. - uses: actions/checkout@v4
  444. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  445. - name: Setup testing repo and quickstart
  446. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  447. - name: Install Secret GoogleService-Info.plist
  448. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  449. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  450. - name: Test swift quickstart
  451. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  452. - name: Remove data before upload
  453. if: ${{ failure() }}
  454. run: scripts/remove_data.sh storage
  455. - uses: actions/upload-artifact@v4
  456. if: ${{ failure() }}
  457. with:
  458. name: quickstart_artifacts_storage
  459. path: quickstart-ios/
  460. performance_quickstart:
  461. # Don't run on private repo unless it is a PR.
  462. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  463. needs: buildup_SpecsReleasing_repo
  464. env:
  465. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  466. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  467. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  468. testing_repo_dir: "/tmp/test/"
  469. testing_repo: "firebase-ios-sdk"
  470. runs-on: macos-14
  471. steps:
  472. - uses: actions/checkout@v4
  473. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  474. - name: Setup testing repo and quickstart
  475. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  476. - name: Install Secret GoogleService-Info.plist
  477. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  478. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  479. - name: Test swift quickstart
  480. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  481. - name: Remove data before upload
  482. if: ${{ failure() }}
  483. run: scripts/remove_data.sh performance
  484. - uses: actions/upload-artifact@v4
  485. if: ${{ failure() }}
  486. with:
  487. name: quickstart_artifacts_performance
  488. path: quickstart-ios/