prerelease.yml 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663
  1. name: prerelease
  2. on:
  3. pull_request:
  4. # closed will be triggered when a pull request is merged. This is to keep https://github.com/firebase/SpecsTesting up to date.
  5. types: [closed]
  6. workflow_dispatch:
  7. schedule:
  8. # Run every day at 9pm (PST) - cron uses UTC times
  9. - cron: '0 5 * * *'
  10. concurrency:
  11. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  12. cancel-in-progress: true
  13. jobs:
  14. specs_checking:
  15. # Don't run on private repo unless it is a PR.
  16. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  17. runs-on: macos-14
  18. env:
  19. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  20. local_repo: specstesting
  21. podspec_repo_branch: main
  22. outputs:
  23. matrix: ${{ steps.generate_matrix.outputs.matrix }}
  24. steps:
  25. - name: Checkout code
  26. uses: actions/checkout@v4
  27. with:
  28. fetch-depth: 0
  29. - name: Generate matrix
  30. id: generate_matrix
  31. run: |
  32. cd "${GITHUB_WORKSPACE}/ReleaseTooling"
  33. swift run manifest --sdk-repo-url "${GITHUB_WORKSPACE}" --output-file-path ./output.json --for-gha-matrix-generation
  34. echo "::set-output name=matrix::{\"include\":$( cat output.json )}"
  35. - name: Update SpecsTesting repo setup
  36. run: |
  37. podspec_repo_branch="${podspec_repo_branch}" \
  38. scripts/release_testing_setup.sh prerelease_testing
  39. env:
  40. BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  41. - name: Get token
  42. run: |
  43. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  44. prerelease-testing-token.txt "$bot_token_secret"
  45. - name: Clean spec repo
  46. run: |
  47. ossbotaccess=`cat prerelease-testing-token.txt`
  48. git clone --quiet https://${ossbotaccess}@github.com/Firebase/SpecsTesting.git "${local_repo}"
  49. cd "${local_repo}"
  50. # Remove all unhidden dirs, i.e. all podspec dir from the spec repo.
  51. rm -Rf -- */
  52. git add .
  53. # commit without diff will throw an error. `git diff --exit-code` can avoid such error.
  54. git diff --staged --exit-code || git commit -m "Empty spec repo."
  55. git push
  56. - name: Clean Artifacts
  57. if: ${{ always() }}
  58. run: |
  59. rm -rf prerelease-testing-token.txt
  60. - uses: actions/upload-artifact@v4
  61. with:
  62. name: firebase-ios-sdk
  63. path: |
  64. *.podspec
  65. *.podspec.json
  66. buildup_SpecsTesting_repo_FirebaseCore:
  67. needs: specs_checking
  68. # Don't run on private repo unless it is a PR.
  69. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  70. runs-on: macos-14
  71. env:
  72. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  73. local_repo: specstesting
  74. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  75. targeted_pod: FirebaseCore
  76. steps:
  77. - uses: actions/checkout@v4
  78. - uses: actions/download-artifact@v4.1.7
  79. with:
  80. name: firebase-ios-sdk
  81. path: ${{ env.local_sdk_repo_dir }}
  82. - name: Get token
  83. run: |
  84. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  85. bot-access.txt "$bot_token_secret"
  86. - name: Update SpecsTesting repo
  87. run: |
  88. botaccess=`cat bot-access.txt`
  89. cd scripts/create_spec_repo/
  90. swift build
  91. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git
  92. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  93. --sdk-repo "${local_sdk_repo_dir}" \
  94. --local-spec-repo-name "${local_repo}" \
  95. --sdk-repo-name SpecsTesting \
  96. --github-account Firebase \
  97. --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" \
  98. --include-pods "${targeted_pod}" --keep-repo
  99. - name: Clean Artifacts
  100. if: ${{ always() }}
  101. run: |
  102. pod repo remove "${local_repo}"
  103. rm -rf bot-access.txt
  104. buildup_SpecsTesting_repo:
  105. needs: [buildup_SpecsTesting_repo_FirebaseCore, specs_checking]
  106. # Don't run on private repo unless it is a PR.
  107. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  108. runs-on: macos-14
  109. strategy:
  110. fail-fast: false
  111. matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}}
  112. env:
  113. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  114. local_repo: specstesting
  115. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  116. targeted_pod: ${{ matrix.podspec }}
  117. steps:
  118. - uses: actions/checkout@v4
  119. - uses: actions/download-artifact@v4.1.7
  120. with:
  121. name: firebase-ios-sdk
  122. path: ${{ env.local_sdk_repo_dir }}
  123. - name: Get token
  124. run: |
  125. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  126. bot-access.txt "$bot_token_secret"
  127. - name: Update SpecsTesting repo
  128. run: |
  129. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  130. botaccess=`cat bot-access.txt`
  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: |
  147. pod repo remove "${local_repo}"
  148. rm -rf bot-access.txt
  149. update_SpecsTesting_repo:
  150. # Don't run on private repo unless it is a PR.
  151. if: github.repository == 'Firebase/firebase-ios-sdk' && github.event.pull_request.merged == true
  152. runs-on: macos-14
  153. env:
  154. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  155. local_repo: specstesting
  156. podspec_repo_branch: main
  157. steps:
  158. - uses: actions/checkout@v4
  159. with:
  160. fetch-depth: 0
  161. - name: Get token
  162. run: |
  163. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  164. bot-access.txt "$bot_token_secret"
  165. - name: Update SpecsTesting repo setup
  166. run: |
  167. # Update/create a nightly tag to the head of the main branch.
  168. podspec_repo_branch="${podspec_repo_branch}" \
  169. scripts/release_testing_setup.sh prerelease_testing
  170. env:
  171. BOT_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  172. - name: Push updated podspecs
  173. run: |
  174. botaccess=`cat bot-access.txt`
  175. # Changes in post submit tests will be fetched by getting diff between
  176. # the HEAD and HEAD^ of the main branch.
  177. common_commit=$(git rev-parse HEAD^)
  178. git diff --name-only $common_commit remotes/origin/${podspec_repo_branch} > updated_files.txt
  179. updated_podspecs=()
  180. while IFS= read -r line;
  181. do
  182. echo $line
  183. if [ ${line: -8} == ".podspec" ]
  184. then
  185. updated_podspecs+=("$(basename -s .podspec ${line})")
  186. fi
  187. done < updated_files.txt
  188. if [ -z "$updated_podspecs" ]
  189. then
  190. exit
  191. fi
  192. cd scripts/create_spec_repo/
  193. swift build
  194. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsTesting.git
  195. 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[@]}"
  196. abtesting_quickstart:
  197. # Don't run on private repo unless it is a PR.
  198. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  199. needs: buildup_SpecsTesting_repo
  200. env:
  201. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  202. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  203. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  204. runs-on: macos-14
  205. steps:
  206. - uses: actions/checkout@v4
  207. - uses: ruby/setup-ruby@v1
  208. - name: Get token
  209. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  210. bot-access.txt "$bot_token_secret"
  211. - name: Setup testing repo and quickstart
  212. env:
  213. LEGACY: true
  214. run: |
  215. botaccess=`cat bot-access.txt`
  216. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting prerelease_testing
  217. - name: Install Secret GoogleService-Info.plist
  218. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  219. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  220. - name: Test swift quickstart
  221. env:
  222. LEGACY: true
  223. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  224. - name: Remove data before upload
  225. env:
  226. LEGACY: true
  227. if: ${{ failure() }}
  228. run: scripts/remove_data.sh config
  229. - uses: actions/upload-artifact@v4
  230. if: ${{ failure() }}
  231. with:
  232. name: quickstart_artifacts_abtesting
  233. path: quickstart-ios/
  234. auth_quickstart:
  235. # Don't run on private repo unless it is a PR.
  236. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  237. needs: buildup_SpecsTesting_repo
  238. env:
  239. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  240. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  241. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  242. runs-on: macos-15
  243. steps:
  244. - uses: actions/checkout@v4
  245. - uses: ruby/setup-ruby@v1
  246. - name: Get token
  247. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  248. bot-access.txt "$bot_token_secret"
  249. - name: Xcode
  250. run: sudo xcode-select -s /Applications/Xcode_16.1.app/Contents/Developer
  251. - name: Setup testing repo and quickstart
  252. run: |
  253. botaccess=`cat bot-access.txt`
  254. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication prerelease_testing
  255. - name: Install Secret GoogleService-Info.plist
  256. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  257. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  258. - name: Test swift quickstart
  259. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  260. - name: Remove data before upload
  261. if: ${{ failure() }}
  262. run: scripts/remove_data.sh authentication
  263. - uses: actions/upload-artifact@v4
  264. if: ${{ failure() }}
  265. with:
  266. name: quickstart_artifacts_auth
  267. path: quickstart-ios/
  268. crashlytics_quickstart:
  269. # Don't run on private repo unless it is a PR.
  270. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  271. needs: buildup_SpecsTesting_repo
  272. env:
  273. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  274. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  275. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  276. testing_repo_dir: "/tmp/test/"
  277. testing_repo: "firebase-ios-sdk"
  278. runs-on: macos-14
  279. steps:
  280. - uses: actions/checkout@v4
  281. - uses: ruby/setup-ruby@v1
  282. - name: Get token
  283. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  284. bot-access.txt "$bot_token_secret"
  285. - name: Setup testing repo and quickstart
  286. env:
  287. LEGACY: true
  288. run: |
  289. botaccess=`cat bot-access.txt`
  290. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics prerelease_testing
  291. - name: Install Secret GoogleService-Info.plist
  292. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  293. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  294. - name: Test swift quickstart
  295. env:
  296. LEGACY: true
  297. run: |
  298. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  299. # Set the deployed pod location of run and upload-symbols with the development pod version.
  300. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  301. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  302. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  303. - name: Remove data before upload
  304. env:
  305. LEGACY: true
  306. if: ${{ failure() }}
  307. run: scripts/remove_data.sh crashlytics
  308. - uses: actions/upload-artifact@v4
  309. if: ${{ failure() }}
  310. with:
  311. name: quickstart_artifacts_crashlytics
  312. path: quickstart-ios/
  313. database_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 == 'workflow_dispatch'
  316. needs: buildup_SpecsTesting_repo
  317. env:
  318. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  319. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  320. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  321. testing_repo_dir: "/tmp/test/"
  322. testing_repo: "firebase-ios-sdk"
  323. runs-on: macos-14
  324. steps:
  325. - uses: actions/checkout@v4
  326. - uses: ruby/setup-ruby@v1
  327. - name: Get token
  328. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  329. bot-access.txt "$bot_token_secret"
  330. - name: Setup testing repo and quickstart
  331. run: |
  332. botaccess=`cat bot-access.txt`
  333. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database prerelease_testing
  334. - name: Install Secret GoogleService-Info.plist
  335. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  336. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  337. - name: Test objc quickstart
  338. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  339. - name: Test swift quickstart
  340. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  341. - name: Remove data before upload
  342. if: ${{ failure() }}
  343. run: scripts/remove_data.sh database
  344. - uses: actions/upload-artifact@v4
  345. if: ${{ failure() }}
  346. with:
  347. name: quickstart_artifacts_database
  348. path: quickstart-ios/
  349. dynamiclinks_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 == 'workflow_dispatch'
  352. needs: buildup_SpecsTesting_repo
  353. env:
  354. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  355. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  356. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  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. - uses: ruby/setup-ruby@v1
  363. - name: Get token
  364. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  365. bot-access.txt "$bot_token_secret"
  366. - name: Setup testing repo and quickstart
  367. run: |
  368. botaccess=`cat bot-access.txt`
  369. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks prerelease_testing
  370. - name: Install Secret GoogleService-Info.plist
  371. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  372. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  373. - name: Update Environment Variable For DynamicLinks
  374. run: |
  375. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  376. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  377. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  378. - name: Test objc quickstart
  379. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  380. - name: Test swift quickstart
  381. if: ${{ always() }}
  382. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  383. - name: Remove data before upload
  384. if: ${{ failure() }}
  385. run: scripts/remove_data.sh dynamiclinks
  386. - uses: actions/upload-artifact@v4
  387. if: ${{ failure() }}
  388. with:
  389. name: quickstart_artifacts_dynamiclinks
  390. path: quickstart-ios/
  391. firestore_quickstart:
  392. # Don't run on private repo unless it is a PR.
  393. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  394. needs: buildup_SpecsTesting_repo
  395. env:
  396. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  397. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  398. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  399. testing_repo_dir: "/tmp/test/"
  400. testing_repo: "firebase-ios-sdk"
  401. runs-on: macos-14
  402. steps:
  403. - uses: actions/checkout@v4
  404. - uses: ruby/setup-ruby@v1
  405. - name: Get token
  406. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  407. bot-access.txt "$bot_token_secret"
  408. - name: Setup testing repo and quickstart
  409. run: |
  410. botaccess=`cat bot-access.txt`
  411. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore prerelease_testing
  412. - name: Install Secret GoogleService-Info.plist
  413. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  414. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  415. - name: Test swift quickstart
  416. run: ([ -z $plist_secret ] ||
  417. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  418. - name: Remove data before upload
  419. if: ${{ failure() }}
  420. run: scripts/remove_data.sh firestore
  421. - uses: actions/upload-artifact@v4
  422. if: ${{ failure() }}
  423. with:
  424. name: quickstart_artifacts_firestore
  425. path: quickstart-ios/
  426. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  427. #functions_quickstart:
  428. # Don't run on private repo unless it is a PR.
  429. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  430. # needs: buildup_SpecsTesting_repo
  431. # env:
  432. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  433. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  434. # bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  435. # testing_repo_dir: "/tmp/test/"
  436. # testing_repo: "firebase-ios-sdk"
  437. # LEGACY: true
  438. # # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  439. # runs-on: macos-12
  440. # steps:
  441. # - uses: actions/checkout@v4
  442. # - uses: ruby/setup-ruby@v1
  443. # - name: Get token
  444. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  445. # bot-access.txt "$bot_token_secret"
  446. # - name: Setup testing repo and quickstart
  447. # run: |
  448. # botaccess=`cat bot-access.txt`
  449. # BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions prerelease_testing
  450. # - name: install secret googleservice-info.plist
  451. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  452. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  453. # - name: Setup custom URL scheme
  454. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  455. # - name: Test objc quickstart
  456. # run: ([ -z $plist_secret ] ||
  457. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  458. # - name: Test swift quickstart
  459. # run: ([ -z $plist_secret ] ||
  460. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  461. # - name: Remove data before upload
  462. # if: ${{ failure() }}
  463. # run: scripts/remove_data.sh functions
  464. # - uses: actions/upload-artifact@v4
  465. # if: ${{ failure() }}
  466. # with:
  467. # name: quickstart_artifacts_functions
  468. # path: quickstart-ios/
  469. inappmessaging_quickstart:
  470. # Don't run on private repo unless it is a PR.
  471. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  472. needs: buildup_SpecsTesting_repo
  473. env:
  474. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  475. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  476. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  477. testing_repo_dir: "/tmp/test/"
  478. testing_repo: "firebase-ios-sdk"
  479. runs-on: macos-14
  480. steps:
  481. - uses: actions/checkout@v4
  482. - uses: ruby/setup-ruby@v1
  483. - name: Get token
  484. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  485. bot-access.txt "$bot_token_secret"
  486. - name: Setup testing repo and quickstart
  487. run: |
  488. botaccess=`cat bot-access.txt`
  489. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging prerelease_testing
  490. - name: install secret googleservice-info.plist
  491. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  492. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  493. - name: Test objc quickstart
  494. run: ([ -z $plist_secret ] ||
  495. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  496. - name: Test swift quickstart
  497. run: ([ -z $plist_secret ] ||
  498. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  499. - name: Remove data before upload
  500. if: ${{ failure() }}
  501. run: scripts/remove_data.sh inappmessaging
  502. - uses: actions/upload-artifact@v4
  503. if: ${{ failure() }}
  504. with:
  505. name: quickstart_artifacts_inappmessaging
  506. path: quickstart-ios/
  507. messaging_quickstart:
  508. # Don't run on private repo unless it is a PR.
  509. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  510. needs: buildup_SpecsTesting_repo
  511. env:
  512. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  513. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  514. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  515. testing_repo_dir: "/tmp/test/"
  516. testing_repo: "firebase-ios-sdk"
  517. runs-on: macos-14
  518. steps:
  519. - uses: actions/checkout@v4
  520. - uses: ruby/setup-ruby@v1
  521. - name: Get token
  522. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  523. bot-access.txt "$bot_token_secret"
  524. - name: Setup testing repo and quickstart
  525. run: |
  526. botaccess=`cat bot-access.txt`
  527. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging prerelease_testing
  528. - name: Install Secret GoogleService-Info.plist
  529. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  530. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  531. - name: Test objc quickstart
  532. run: ([ -z $plist_secret ] ||
  533. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  534. - name: Test swift quickstart
  535. run: ([ -z $plist_secret ] ||
  536. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  537. - name: Remove data before upload
  538. if: ${{ failure() }}
  539. run: scripts/remove_data.sh messaging
  540. - uses: actions/upload-artifact@v4
  541. if: ${{ failure() }}
  542. with:
  543. name: quickstart_artifacts_messaging
  544. path: quickstart-ios/
  545. remoteconfig_quickstart:
  546. # Don't run on private repo unless it is a PR.
  547. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  548. needs: buildup_SpecsTesting_repo
  549. env:
  550. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  551. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  552. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  553. runs-on: macos-14
  554. steps:
  555. - uses: actions/checkout@v4
  556. - uses: ruby/setup-ruby@v1
  557. - name: Get token
  558. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  559. bot-access.txt "$bot_token_secret"
  560. - name: Setup testing repo and quickstart
  561. run: |
  562. botaccess=`cat bot-access.txt`
  563. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config prerelease_testing
  564. - name: Install Secret GoogleService-Info.plist
  565. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  566. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  567. - name: Test Swift Quickstart
  568. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  569. - name: Remove data before upload
  570. if: ${{ failure() }}
  571. run: scripts/remove_data.sh config
  572. - uses: actions/upload-artifact@v4
  573. if: ${{ failure() }}
  574. with:
  575. name: quickstart_artifacts_config
  576. path: quickstart-ios/
  577. storage_quickstart:
  578. # Don't run on private repo unless it is a PR.
  579. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  580. needs: buildup_SpecsTesting_repo
  581. env:
  582. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  583. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  584. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  585. testing_repo_dir: "/tmp/test/"
  586. testing_repo: "firebase-ios-sdk"
  587. LEGACY: true
  588. runs-on: macos-14
  589. steps:
  590. - uses: actions/checkout@v4
  591. - uses: ruby/setup-ruby@v1
  592. - name: Get token
  593. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  594. bot-access.txt "$bot_token_secret"
  595. - name: Setup testing repo and quickstart
  596. run: |
  597. botaccess=`cat bot-access.txt`
  598. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage prerelease_testing
  599. - name: Install Secret GoogleService-Info.plist
  600. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  601. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  602. - name: Test swift quickstart
  603. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  604. - name: Remove data before upload
  605. if: ${{ failure() }}
  606. run: scripts/remove_data.sh storage
  607. - uses: actions/upload-artifact@v4
  608. if: ${{ failure() }}
  609. with:
  610. name: quickstart_artifacts_storage
  611. path: quickstart-ios/
  612. performance_quickstart:
  613. # Don't run on private repo unless it is a PR.
  614. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  615. needs: buildup_SpecsTesting_repo
  616. env:
  617. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  618. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  619. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  620. testing_repo_dir: "/tmp/test/"
  621. testing_repo: "firebase-ios-sdk"
  622. runs-on: macos-14
  623. steps:
  624. - uses: actions/checkout@v4
  625. - uses: ruby/setup-ruby@v1
  626. - name: Get token
  627. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/prerelease-testing-token.txt.gpg \
  628. bot-access.txt "$bot_token_secret"
  629. - name: Setup testing repo and quickstart
  630. run: |
  631. botaccess=`cat bot-access.txt`
  632. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance prerelease_testing
  633. - name: Install Secret GoogleService-Info.plist
  634. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  635. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  636. - name: Test swift quickstart
  637. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  638. - name: Remove data before upload
  639. if: ${{ failure() }}
  640. run: scripts/remove_data.sh performance
  641. - uses: actions/upload-artifact@v4
  642. if: ${{ failure() }}
  643. with:
  644. name: quickstart_artifacts_performance
  645. path: quickstart-ios/