release.yml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  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. - name: Update SpecsReleasing repo
  125. run: |
  126. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  127. cd scripts/create_spec_repo/
  128. swift build
  129. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  130. # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the
  131. # command if ${ALLOWWARNINGS} is not null.
  132. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  133. --sdk-repo "${local_sdk_repo_dir}" \
  134. --local-spec-repo-name "${local_repo}" \
  135. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  136. --include-pods "${targeted_pod}" \
  137. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  138. - name: Clean Artifacts
  139. if: ${{ always() }}
  140. run: pod repo remove "${local_repo}"
  141. abtesting_quickstart:
  142. # Don't run on private repo unless it is a PR.
  143. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  144. needs: buildup_SpecsReleasing_repo
  145. env:
  146. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  147. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  148. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  149. runs-on: macos-14
  150. steps:
  151. - uses: actions/checkout@v4
  152. - name: Set Xcode version
  153. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  154. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  155. - name: Setup testing repo and quickstart
  156. env:
  157. LEGACY: true
  158. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  159. - name: Install Secret GoogleService-Info.plist
  160. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  161. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  162. - name: Test swift quickstart
  163. env:
  164. LEGACY: true
  165. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  166. - name: Remove data before upload
  167. env:
  168. LEGACY: true
  169. if: ${{ failure() }}
  170. run: scripts/remove_data.sh config
  171. - uses: actions/upload-artifact@v4
  172. if: ${{ failure() }}
  173. with:
  174. name: quickstart_artifacts_abtesting
  175. path: quickstart-ios/
  176. auth_quickstart:
  177. # Don't run on private repo unless it is a PR.
  178. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  179. needs: buildup_SpecsReleasing_repo
  180. env:
  181. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  182. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  183. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  184. runs-on: macos-15
  185. steps:
  186. - uses: actions/checkout@v4
  187. - name: Set Xcode version
  188. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  189. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  190. - name: Setup testing repo and quickstart
  191. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  192. - name: Install Secret GoogleService-Info.plist
  193. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  194. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  195. - name: Test swift quickstart
  196. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  197. - name: Remove data before upload
  198. if: ${{ failure() }}
  199. run: scripts/remove_data.sh authentication
  200. - uses: actions/upload-artifact@v4
  201. if: ${{ failure() }}
  202. with:
  203. name: quickstart_artifacts_auth
  204. path: quickstart-ios/
  205. crashlytics_quickstart:
  206. # Don't run on private repo unless it is a PR.
  207. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  208. needs: buildup_SpecsReleasing_repo
  209. env:
  210. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  211. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  212. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  213. testing_repo_dir: "/tmp/test/"
  214. testing_repo: "firebase-ios-sdk"
  215. runs-on: macos-14
  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. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  254. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  255. testing_repo_dir: "/tmp/test/"
  256. testing_repo: "firebase-ios-sdk"
  257. runs-on: macos-14
  258. steps:
  259. - uses: actions/checkout@v4
  260. - name: Set Xcode version
  261. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  262. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  263. - name: Setup testing repo and quickstart
  264. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  265. - name: Install Secret GoogleService-Info.plist
  266. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  267. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  268. - name: Test objc quickstart
  269. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  270. - name: Test swift quickstart
  271. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  272. - name: Remove data before upload
  273. if: ${{ failure() }}
  274. run: scripts/remove_data.sh database
  275. - uses: actions/upload-artifact@v4
  276. if: ${{ failure() }}
  277. with:
  278. name: quickstart_artifacts_database
  279. path: quickstart-ios/
  280. firestore_quickstart:
  281. # Don't run on private repo unless it is a PR.
  282. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  283. needs: buildup_SpecsReleasing_repo
  284. env:
  285. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  286. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  287. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  288. testing_repo_dir: "/tmp/test/"
  289. testing_repo: "firebase-ios-sdk"
  290. runs-on: macos-14
  291. steps:
  292. - uses: actions/checkout@v4
  293. - name: Set Xcode version
  294. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  295. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  296. - name: Setup testing repo and quickstart
  297. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  298. - name: Install Secret GoogleService-Info.plist
  299. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  300. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  301. - name: Test swift quickstart
  302. run: ([ -z $plist_secret ] ||
  303. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  304. - name: Remove data before upload
  305. if: ${{ failure() }}
  306. run: scripts/remove_data.sh firestore
  307. - uses: actions/upload-artifact@v4
  308. if: ${{ failure() }}
  309. with:
  310. name: quickstart_artifacts_firestore
  311. path: quickstart-ios/
  312. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  313. # functions_quickstart:
  314. # # Don't run on private repo unless it is a PR.
  315. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  316. # needs: buildup_SpecsReleasing_repo
  317. # env:
  318. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  319. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  320. # botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  321. # testing_repo_dir: "/tmp/test/"
  322. # testing_repo: "firebase-ios-sdk"
  323. # LEGACY: true
  324. # runs-on: macos-12
  325. # steps:
  326. # - uses: actions/checkout@v4
  327. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  328. # - name: Setup testing repo and quickstart
  329. # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  330. # - name: install secret googleservice-info.plist
  331. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  332. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  333. # - name: Setup custom URL scheme
  334. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  335. # - name: Test objc quickstart
  336. # run: ([ -z $plist_secret ] ||
  337. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  338. # - name: Test swift quickstart
  339. # run: ([ -z $plist_secret ] ||
  340. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  341. # - name: Remove data before upload
  342. # if: ${{ failure() }}
  343. # run: scripts/remove_data.sh functions
  344. # - uses: actions/upload-artifact@v4
  345. # if: ${{ failure() }}
  346. # with:
  347. # name: quickstart_artifacts_functions
  348. # path: quickstart-ios/
  349. inappmessaging_quickstart:
  350. # Don't run on private repo unless it is a PR.
  351. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  352. needs: buildup_SpecsReleasing_repo
  353. env:
  354. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  355. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  356. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  357. testing_repo_dir: "/tmp/test/"
  358. testing_repo: "firebase-ios-sdk"
  359. runs-on: macos-14
  360. steps:
  361. - uses: actions/checkout@v4
  362. - name: Set Xcode version
  363. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  364. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  365. - name: Setup testing repo and quickstart
  366. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  367. - name: install secret googleservice-info.plist
  368. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  369. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  370. - name: Test objc quickstart
  371. run: ([ -z $plist_secret ] ||
  372. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  373. - name: Test swift quickstart
  374. run: ([ -z $plist_secret ] ||
  375. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  376. - name: Remove data before upload
  377. if: ${{ failure() }}
  378. run: scripts/remove_data.sh inappmessaging
  379. - uses: actions/upload-artifact@v4
  380. if: ${{ failure() }}
  381. with:
  382. name: quickstart_artifacts_inappmessaging
  383. path: quickstart-ios/
  384. messaging_quickstart:
  385. # Don't run on private repo unless it is a PR.
  386. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  387. needs: buildup_SpecsReleasing_repo
  388. env:
  389. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  390. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  391. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  392. testing_repo_dir: "/tmp/test/"
  393. testing_repo: "firebase-ios-sdk"
  394. runs-on: macos-14
  395. steps:
  396. - uses: actions/checkout@v4
  397. - name: Set Xcode version
  398. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  399. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  400. - name: Setup testing repo and quickstart
  401. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  402. - name: Install Secret GoogleService-Info.plist
  403. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  404. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  405. - name: Test objc quickstart
  406. run: ([ -z $plist_secret ] ||
  407. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  408. - name: Test swift quickstart
  409. run: ([ -z $plist_secret ] ||
  410. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  411. - name: Remove data before upload
  412. if: ${{ failure() }}
  413. run: scripts/remove_data.sh messaging
  414. - uses: actions/upload-artifact@v4
  415. if: ${{ failure() }}
  416. with:
  417. name: quickstart_artifacts_messaging
  418. path: quickstart-ios/
  419. remoteconfig_quickstart:
  420. # Don't run on private repo unless it is a PR.
  421. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  422. needs: buildup_SpecsReleasing_repo
  423. env:
  424. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  425. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  426. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  427. runs-on: macos-14
  428. steps:
  429. - uses: actions/checkout@v4
  430. - name: Set Xcode version
  431. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  432. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  433. - name: Setup testing repo and quickstart
  434. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  435. - name: Install Secret GoogleService-Info.plist
  436. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  437. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  438. - name: Test Swift Quickstart
  439. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  440. - name: Remove data before upload
  441. if: ${{ failure() }}
  442. run: scripts/remove_data.sh config
  443. - uses: actions/upload-artifact@v4
  444. if: ${{ failure() }}
  445. with:
  446. name: quickstart_artifacts_config
  447. path: quickstart-ios/
  448. storage_quickstart:
  449. # Don't run on private repo unless it is a PR.
  450. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  451. needs: buildup_SpecsReleasing_repo
  452. env:
  453. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  454. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  455. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  456. testing_repo_dir: "/tmp/test/"
  457. testing_repo: "firebase-ios-sdk"
  458. LEGACY: true
  459. runs-on: macos-14
  460. steps:
  461. - uses: actions/checkout@v4
  462. - name: Set Xcode version
  463. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  464. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  465. - name: Setup testing repo and quickstart
  466. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  467. - name: Install Secret GoogleService-Info.plist
  468. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  469. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  470. - name: Test swift quickstart
  471. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  472. - name: Remove data before upload
  473. if: ${{ failure() }}
  474. run: scripts/remove_data.sh storage
  475. - uses: actions/upload-artifact@v4
  476. if: ${{ failure() }}
  477. with:
  478. name: quickstart_artifacts_storage
  479. path: quickstart-ios/
  480. performance_quickstart:
  481. # Don't run on private repo unless it is a PR.
  482. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  483. needs: buildup_SpecsReleasing_repo
  484. env:
  485. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  486. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  487. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  488. testing_repo_dir: "/tmp/test/"
  489. testing_repo: "firebase-ios-sdk"
  490. runs-on: macos-14
  491. steps:
  492. - uses: actions/checkout@v4
  493. - name: Set Xcode version
  494. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  495. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  496. - name: Setup testing repo and quickstart
  497. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  498. - name: Install Secret GoogleService-Info.plist
  499. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  500. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  501. - name: Test swift quickstart
  502. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  503. - name: Remove data before upload
  504. if: ${{ failure() }}
  505. run: scripts/remove_data.sh performance
  506. - uses: actions/upload-artifact@v4
  507. if: ${{ failure() }}
  508. with:
  509. name: quickstart_artifacts_performance
  510. path: quickstart-ios/