prerelease.yml 26 KB

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