release.yml 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  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. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  153. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  154. runs-on: macos-15
  155. steps:
  156. - uses: actions/checkout@v4
  157. - name: Set Xcode version
  158. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  159. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  160. - name: Setup testing repo and quickstart
  161. env:
  162. LEGACY: true
  163. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  164. - name: Install Secret GoogleService-Info.plist
  165. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  166. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  167. - name: Test swift quickstart
  168. env:
  169. LEGACY: true
  170. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  171. - name: Remove data before upload
  172. env:
  173. LEGACY: true
  174. if: ${{ failure() }}
  175. run: scripts/remove_data.sh config
  176. - uses: actions/upload-artifact@v4
  177. if: ${{ failure() }}
  178. with:
  179. name: quickstart_artifacts_abtesting
  180. path: quickstart-ios/
  181. auth_quickstart:
  182. # Don't run on private repo unless it is a PR.
  183. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  184. needs: buildup_SpecsReleasing_repo
  185. env:
  186. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  187. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  188. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  189. runs-on: macos-15
  190. steps:
  191. - uses: actions/checkout@v4
  192. - name: Set Xcode version
  193. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  194. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  195. - name: Setup testing repo and quickstart
  196. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  197. - name: Install Secret GoogleService-Info.plist
  198. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  199. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  200. - name: Test swift quickstart
  201. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  202. - name: Remove data before upload
  203. if: ${{ failure() }}
  204. run: scripts/remove_data.sh authentication
  205. - uses: actions/upload-artifact@v4
  206. if: ${{ failure() }}
  207. with:
  208. name: quickstart_artifacts_auth
  209. path: quickstart-ios/
  210. crashlytics_quickstart:
  211. # Don't run on private repo unless it is a PR.
  212. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  213. needs: buildup_SpecsReleasing_repo
  214. env:
  215. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  216. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  217. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  218. testing_repo_dir: "/tmp/test/"
  219. testing_repo: "firebase-ios-sdk"
  220. runs-on: macos-15
  221. steps:
  222. - uses: actions/checkout@v4
  223. - name: Set Xcode version
  224. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  225. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  226. - name: Setup testing repo and quickstart
  227. env:
  228. LEGACY: true
  229. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  230. - name: Install Secret GoogleService-Info.plist
  231. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  232. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  233. - name: Test swift quickstart
  234. env:
  235. LEGACY: true
  236. run: |
  237. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  238. # Set the deployed pod location of run and upload-symbols with the development pod version.
  239. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  240. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  241. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  242. - name: Remove data before upload
  243. env:
  244. LEGACY: true
  245. if: ${{ failure() }}
  246. run: scripts/remove_data.sh crashlytics
  247. - uses: actions/upload-artifact@v4
  248. if: ${{ failure() }}
  249. with:
  250. name: quickstart_artifacts_crashlytics
  251. path: quickstart-ios/
  252. database_quickstart:
  253. # Don't run on private repo unless it is a PR.
  254. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  255. needs: buildup_SpecsReleasing_repo
  256. env:
  257. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  258. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  259. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  260. testing_repo_dir: "/tmp/test/"
  261. testing_repo: "firebase-ios-sdk"
  262. runs-on: macos-15
  263. steps:
  264. - uses: actions/checkout@v4
  265. - name: Set Xcode version
  266. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  267. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  268. - name: Setup testing repo and quickstart
  269. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  270. - name: Install Secret GoogleService-Info.plist
  271. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  272. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  273. - name: Test objc quickstart
  274. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  275. - name: Test swift quickstart
  276. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  277. - name: Remove data before upload
  278. if: ${{ failure() }}
  279. run: scripts/remove_data.sh database
  280. - uses: actions/upload-artifact@v4
  281. if: ${{ failure() }}
  282. with:
  283. name: quickstart_artifacts_database
  284. path: quickstart-ios/
  285. firestore_quickstart:
  286. # Don't run on private repo unless it is a PR.
  287. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  288. needs: buildup_SpecsReleasing_repo
  289. env:
  290. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  291. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  292. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  293. testing_repo_dir: "/tmp/test/"
  294. testing_repo: "firebase-ios-sdk"
  295. runs-on: macos-15
  296. steps:
  297. - uses: actions/checkout@v4
  298. - name: Set Xcode version
  299. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  300. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  301. - name: Setup testing repo and quickstart
  302. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  303. - name: Install Secret GoogleService-Info.plist
  304. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  305. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  306. - name: Test swift quickstart
  307. run: ([ -z $plist_secret ] ||
  308. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  309. - name: Remove data before upload
  310. if: ${{ failure() }}
  311. run: scripts/remove_data.sh firestore
  312. - uses: actions/upload-artifact@v4
  313. if: ${{ failure() }}
  314. with:
  315. name: quickstart_artifacts_firestore
  316. path: quickstart-ios/
  317. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  318. # functions_quickstart:
  319. # # Don't run on private repo unless it is a PR.
  320. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  321. # needs: buildup_SpecsReleasing_repo
  322. # env:
  323. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  324. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  325. # botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  326. # testing_repo_dir: "/tmp/test/"
  327. # testing_repo: "firebase-ios-sdk"
  328. # LEGACY: true
  329. # runs-on: macos-12
  330. # steps:
  331. # - uses: actions/checkout@v4
  332. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  333. # - name: Setup testing repo and quickstart
  334. # run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  335. # - name: install secret googleservice-info.plist
  336. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  337. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  338. # - name: Setup custom URL scheme
  339. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  340. # - name: Test objc quickstart
  341. # run: ([ -z $plist_secret ] ||
  342. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  343. # - name: Test swift quickstart
  344. # run: ([ -z $plist_secret ] ||
  345. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  346. # - name: Remove data before upload
  347. # if: ${{ failure() }}
  348. # run: scripts/remove_data.sh functions
  349. # - uses: actions/upload-artifact@v4
  350. # if: ${{ failure() }}
  351. # with:
  352. # name: quickstart_artifacts_functions
  353. # path: quickstart-ios/
  354. inappmessaging_quickstart:
  355. # Don't run on private repo unless it is a PR.
  356. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  357. needs: buildup_SpecsReleasing_repo
  358. env:
  359. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  360. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  361. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  362. testing_repo_dir: "/tmp/test/"
  363. testing_repo: "firebase-ios-sdk"
  364. runs-on: macos-15
  365. steps:
  366. - uses: actions/checkout@v4
  367. - name: Set Xcode version
  368. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  369. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  370. - name: Setup testing repo and quickstart
  371. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  372. - name: install secret googleservice-info.plist
  373. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  374. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  375. - name: Test objc quickstart
  376. run: ([ -z $plist_secret ] ||
  377. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  378. - name: Test swift quickstart
  379. run: ([ -z $plist_secret ] ||
  380. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  381. - name: Remove data before upload
  382. if: ${{ failure() }}
  383. run: scripts/remove_data.sh inappmessaging
  384. - uses: actions/upload-artifact@v4
  385. if: ${{ failure() }}
  386. with:
  387. name: quickstart_artifacts_inappmessaging
  388. path: quickstart-ios/
  389. messaging_quickstart:
  390. # Don't run on private repo unless it is a PR.
  391. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  392. needs: buildup_SpecsReleasing_repo
  393. env:
  394. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  395. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  396. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  397. testing_repo_dir: "/tmp/test/"
  398. testing_repo: "firebase-ios-sdk"
  399. runs-on: macos-15
  400. steps:
  401. - uses: actions/checkout@v4
  402. - name: Set Xcode version
  403. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  404. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  405. - name: Setup testing repo and quickstart
  406. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  407. - name: Install Secret GoogleService-Info.plist
  408. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  409. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  410. - name: Test objc quickstart
  411. run: ([ -z $plist_secret ] ||
  412. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  413. - name: Test swift quickstart
  414. run: ([ -z $plist_secret ] ||
  415. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  416. - name: Remove data before upload
  417. if: ${{ failure() }}
  418. run: scripts/remove_data.sh messaging
  419. - uses: actions/upload-artifact@v4
  420. if: ${{ failure() }}
  421. with:
  422. name: quickstart_artifacts_messaging
  423. path: quickstart-ios/
  424. remoteconfig_quickstart:
  425. # Don't run on private repo unless it is a PR.
  426. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  427. needs: buildup_SpecsReleasing_repo
  428. env:
  429. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  430. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  431. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  432. runs-on: macos-15
  433. steps:
  434. - uses: actions/checkout@v4
  435. - name: Set Xcode version
  436. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  437. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  438. - name: Setup testing repo and quickstart
  439. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  440. - name: Install Secret GoogleService-Info.plist
  441. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  442. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  443. - name: Test Swift Quickstart
  444. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  445. - name: Remove data before upload
  446. if: ${{ failure() }}
  447. run: scripts/remove_data.sh config
  448. - uses: actions/upload-artifact@v4
  449. if: ${{ failure() }}
  450. with:
  451. name: quickstart_artifacts_config
  452. path: quickstart-ios/
  453. storage_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. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  461. testing_repo_dir: "/tmp/test/"
  462. testing_repo: "firebase-ios-sdk"
  463. LEGACY: true
  464. runs-on: macos-15
  465. steps:
  466. - uses: actions/checkout@v4
  467. - name: Set Xcode version
  468. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  469. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  470. - name: Setup testing repo and quickstart
  471. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  472. - name: Install Secret GoogleService-Info.plist
  473. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  474. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  475. - name: Test swift quickstart
  476. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  477. - name: Remove data before upload
  478. if: ${{ failure() }}
  479. run: scripts/remove_data.sh storage
  480. - uses: actions/upload-artifact@v4
  481. if: ${{ failure() }}
  482. with:
  483. name: quickstart_artifacts_storage
  484. path: quickstart-ios/
  485. performance_quickstart:
  486. # Don't run on private repo unless it is a PR.
  487. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  488. needs: buildup_SpecsReleasing_repo
  489. env:
  490. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  491. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  492. botaccess: ${{ secrets.RELEASE_TESTING_PAT }}
  493. testing_repo_dir: "/tmp/test/"
  494. testing_repo: "firebase-ios-sdk"
  495. runs-on: macos-15
  496. steps:
  497. - uses: actions/checkout@v4
  498. - name: Set Xcode version
  499. run: sudo xcode-select -s /Applications/Xcode_16.4.app
  500. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  501. - name: Setup testing repo and quickstart
  502. run: BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  503. - name: Install Secret GoogleService-Info.plist
  504. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  505. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  506. - name: Test swift quickstart
  507. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  508. - name: Remove data before upload
  509. if: ${{ failure() }}
  510. run: scripts/remove_data.sh performance
  511. - uses: actions/upload-artifact@v4
  512. if: ${{ failure() }}
  513. with:
  514. name: quickstart_artifacts_performance
  515. path: quickstart-ios/