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 10pm (PDT) / 1am (EDT) - 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. - name: Set Xcode version
  85. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  86. - uses: actions/download-artifact@v4.1.7
  87. with:
  88. name: firebase-ios-sdk
  89. path: ${{ env.local_sdk_repo_dir }}
  90. - name: Update SpecsReleasing repo
  91. run: |
  92. cd scripts/create_spec_repo/
  93. swift build
  94. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  95. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  96. --sdk-repo "${local_sdk_repo_dir}" \
  97. --local-spec-repo-name "${local_repo}" \
  98. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  99. --include-pods "${targeted_pod}" --keep-repo
  100. - name: Clean Artifacts
  101. if: ${{ always() }}
  102. run: pod repo remove "${local_repo}"
  103. buildup_SpecsReleasing_repo:
  104. needs: [buildup_SpecsReleasing_repo_FirebaseCore, specs_checking]
  105. # Don't run on private repo unless it is a PR.
  106. if: github.repository == 'Firebase/firebase-ios-sdk' || github.event_name == 'workflow_dispatch'
  107. runs-on: macos-15
  108. strategy:
  109. fail-fast: false
  110. matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}}
  111. env:
  112. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  113. local_repo: specsreleasing
  114. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  115. targeted_pod: ${{ matrix.podspec }}
  116. steps:
  117. - uses: actions/checkout@v4
  118. - name: Set Xcode version
  119. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  120. - uses: actions/download-artifact@v4.1.7
  121. with:
  122. name: firebase-ios-sdk
  123. path: ${{ env.local_sdk_repo_dir }}
  124. # Addresses flaky pushes due to missing git config on runner.
  125. - name: Set git config
  126. run: |
  127. git config --global user.email "google-oss-bot@example.com"
  128. git config --global user.name "google-oss-bot"
  129. - name: Update SpecsReleasing repo
  130. run: |
  131. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  132. cd scripts/create_spec_repo/
  133. swift build
  134. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  135. # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the
  136. # command if ${ALLOWWARNINGS} is not null.
  137. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  138. --sdk-repo "${local_sdk_repo_dir}" \
  139. --local-spec-repo-name "${local_repo}" \
  140. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  141. --include-pods "${targeted_pod}" \
  142. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  143. - name: Clean Artifacts
  144. if: ${{ always() }}
  145. run: pod repo remove "${local_repo}"
  146. abtesting_quickstart:
  147. # Don't run on private repo unless it is a PR.
  148. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  149. needs: buildup_SpecsReleasing_repo
  150. env:
  151. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  152. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  153. runs-on: macos-15
  154. steps:
  155. - uses: actions/checkout@v4
  156. - name: Set Xcode version
  157. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  158. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  159. - name: Setup testing repo and quickstart
  160. env:
  161. LEGACY: true
  162. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  163. - name: Install Secret GoogleService-Info.plist
  164. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  165. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  166. - name: Test swift quickstart
  167. env:
  168. LEGACY: true
  169. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  170. - name: Remove data before upload
  171. env:
  172. LEGACY: true
  173. if: ${{ failure() }}
  174. run: scripts/remove_data.sh config
  175. - uses: actions/upload-artifact@v4
  176. if: ${{ failure() }}
  177. with:
  178. name: quickstart_artifacts_abtesting
  179. path: quickstart-ios/
  180. auth_quickstart:
  181. # Don't run on private repo unless it is a PR.
  182. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  183. needs: buildup_SpecsReleasing_repo
  184. env:
  185. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  186. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  187. runs-on: macos-15
  188. steps:
  189. - uses: actions/checkout@v4
  190. - name: Set Xcode version
  191. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  192. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  193. - name: Setup testing repo and quickstart
  194. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  195. - name: Install Secret GoogleService-Info.plist
  196. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  197. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  198. - name: Test swift quickstart
  199. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  200. - name: Remove data before upload
  201. if: ${{ failure() }}
  202. run: scripts/remove_data.sh authentication
  203. - uses: actions/upload-artifact@v4
  204. if: ${{ failure() }}
  205. with:
  206. name: quickstart_artifacts_auth
  207. path: quickstart-ios/
  208. crashlytics_quickstart:
  209. # Don't run on private repo unless it is a PR.
  210. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  211. needs: buildup_SpecsReleasing_repo
  212. env:
  213. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  214. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  215. runs-on: macos-15
  216. steps:
  217. - uses: actions/checkout@v4
  218. - name: Set Xcode version
  219. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  220. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  221. - name: Setup testing repo and quickstart
  222. env:
  223. LEGACY: true
  224. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  225. - name: Install Secret GoogleService-Info.plist
  226. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  227. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  228. - name: Test swift quickstart
  229. env:
  230. LEGACY: true
  231. run: |
  232. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  233. # Set the deployed pod location of run and upload-symbols with the development pod version.
  234. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  235. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  236. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  237. - name: Remove data before upload
  238. env:
  239. LEGACY: true
  240. if: ${{ failure() }}
  241. run: scripts/remove_data.sh crashlytics
  242. - uses: actions/upload-artifact@v4
  243. if: ${{ failure() }}
  244. with:
  245. name: quickstart_artifacts_crashlytics
  246. path: quickstart-ios/
  247. database_quickstart:
  248. # Don't run on private repo unless it is a PR.
  249. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  250. needs: buildup_SpecsReleasing_repo
  251. env:
  252. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  253. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  254. runs-on: macos-15
  255. steps:
  256. - uses: actions/checkout@v4
  257. - name: Set Xcode version
  258. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  259. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  260. - name: Setup testing repo and quickstart
  261. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  262. - name: Install Secret GoogleService-Info.plist
  263. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  264. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  265. - name: Test objc quickstart
  266. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  267. - name: Test swift quickstart
  268. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  269. - name: Remove data before upload
  270. if: ${{ failure() }}
  271. run: scripts/remove_data.sh database
  272. - uses: actions/upload-artifact@v4
  273. if: ${{ failure() }}
  274. with:
  275. name: quickstart_artifacts_database
  276. path: quickstart-ios/
  277. firestore_quickstart:
  278. # Don't run on private repo unless it is a PR.
  279. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  280. needs: buildup_SpecsReleasing_repo
  281. env:
  282. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  283. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  284. runs-on: macos-15
  285. steps:
  286. - uses: actions/checkout@v4
  287. - name: Set Xcode version
  288. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  289. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  290. - name: Setup testing repo and quickstart
  291. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  292. - name: Install Secret GoogleService-Info.plist
  293. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  294. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  295. - name: Test swift quickstart
  296. run: ([ -z $plist_secret ] ||
  297. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  298. - name: Remove data before upload
  299. if: ${{ failure() }}
  300. run: scripts/remove_data.sh firestore
  301. - uses: actions/upload-artifact@v4
  302. if: ${{ failure() }}
  303. with:
  304. name: quickstart_artifacts_firestore
  305. path: quickstart-ios/
  306. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  307. # functions_quickstart:
  308. # # Don't run on private repo unless it is a PR.
  309. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  310. # needs: buildup_SpecsReleasing_repo
  311. # env:
  312. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  313. # botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  314. # LEGACY: true
  315. # runs-on: macos-12
  316. # steps:
  317. # - uses: actions/checkout@v4
  318. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  319. # - name: Setup testing repo and quickstart
  320. # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  321. # - name: install secret googleservice-info.plist
  322. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  323. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  324. # - name: Setup custom URL scheme
  325. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  326. # - name: Test objc quickstart
  327. # run: ([ -z $plist_secret ] ||
  328. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  329. # - name: Test swift quickstart
  330. # run: ([ -z $plist_secret ] ||
  331. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  332. # - name: Remove data before upload
  333. # if: ${{ failure() }}
  334. # run: scripts/remove_data.sh functions
  335. # - uses: actions/upload-artifact@v4
  336. # if: ${{ failure() }}
  337. # with:
  338. # name: quickstart_artifacts_functions
  339. # path: quickstart-ios/
  340. inappmessaging_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. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  347. runs-on: macos-15
  348. steps:
  349. - uses: actions/checkout@v4
  350. - name: Set Xcode version
  351. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  352. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  353. - name: Setup testing repo and quickstart
  354. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  355. - name: install secret googleservice-info.plist
  356. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  357. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  358. - name: Test objc quickstart
  359. run: ([ -z $plist_secret ] ||
  360. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  361. - name: Test swift quickstart
  362. run: ([ -z $plist_secret ] ||
  363. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  364. - name: Remove data before upload
  365. if: ${{ failure() }}
  366. run: scripts/remove_data.sh inappmessaging
  367. - uses: actions/upload-artifact@v4
  368. if: ${{ failure() }}
  369. with:
  370. name: quickstart_artifacts_inappmessaging
  371. path: quickstart-ios/
  372. messaging_quickstart:
  373. # Don't run on private repo unless it is a PR.
  374. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  375. needs: buildup_SpecsReleasing_repo
  376. env:
  377. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  378. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  379. runs-on: macos-15
  380. steps:
  381. - uses: actions/checkout@v4
  382. - name: Set Xcode version
  383. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  384. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  385. - name: Setup testing repo and quickstart
  386. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  387. - name: Install Secret GoogleService-Info.plist
  388. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  389. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  390. - name: Test objc quickstart
  391. run: ([ -z $plist_secret ] ||
  392. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  393. - name: Test swift quickstart
  394. run: ([ -z $plist_secret ] ||
  395. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  396. - name: Remove data before upload
  397. if: ${{ failure() }}
  398. run: scripts/remove_data.sh messaging
  399. - uses: actions/upload-artifact@v4
  400. if: ${{ failure() }}
  401. with:
  402. name: quickstart_artifacts_messaging
  403. path: quickstart-ios/
  404. remoteconfig_quickstart:
  405. # Don't run on private repo unless it is a PR.
  406. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  407. needs: buildup_SpecsReleasing_repo
  408. env:
  409. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  410. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  411. runs-on: macos-15
  412. steps:
  413. - uses: actions/checkout@v4
  414. - name: Set Xcode version
  415. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  416. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  417. - name: Setup testing repo and quickstart
  418. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  419. - name: Install Secret GoogleService-Info.plist
  420. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  421. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  422. - name: Test Swift Quickstart
  423. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  424. - name: Remove data before upload
  425. if: ${{ failure() }}
  426. run: scripts/remove_data.sh config
  427. - uses: actions/upload-artifact@v4
  428. if: ${{ failure() }}
  429. with:
  430. name: quickstart_artifacts_config
  431. path: quickstart-ios/
  432. storage_quickstart:
  433. # Don't run on private repo unless it is a PR.
  434. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  435. needs: buildup_SpecsReleasing_repo
  436. env:
  437. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  438. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  439. LEGACY: true
  440. runs-on: macos-15
  441. steps:
  442. - uses: actions/checkout@v4
  443. - name: Set Xcode version
  444. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  445. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  446. - name: Setup testing repo and quickstart
  447. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  448. - name: Install Secret GoogleService-Info.plist
  449. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  450. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  451. - name: Test swift quickstart
  452. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  453. - name: Remove data before upload
  454. if: ${{ failure() }}
  455. run: scripts/remove_data.sh storage
  456. - uses: actions/upload-artifact@v4
  457. if: ${{ failure() }}
  458. with:
  459. name: quickstart_artifacts_storage
  460. path: quickstart-ios/
  461. performance_quickstart:
  462. # Don't run on private repo unless it is a PR.
  463. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  464. needs: buildup_SpecsReleasing_repo
  465. env:
  466. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  467. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  468. runs-on: macos-15
  469. steps:
  470. - uses: actions/checkout@v4
  471. - name: Set Xcode version
  472. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  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/