release.yml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  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 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-14
  22. env:
  23. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  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: Get token
  44. run: |
  45. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  46. bot-access.txt "$bot_token_secret"
  47. - name: Clean spec repo
  48. run: |
  49. botaccess=`cat bot-access.txt`
  50. git clone --quiet https://"$botaccess"@github.com/Firebase/SpecsReleasing.git "${local_repo}"
  51. cd "${local_repo}"
  52. # Remove all unhidden dirs, i.e. all podspec dir from the spec repo.
  53. rm -Rf -- */
  54. git add .
  55. # commit without diff will throw an error. `git diff --exit-code` can avoid such error.
  56. git diff --staged --exit-code || git commit -m "Empty spec repo."
  57. git push
  58. - name: Clean Artifacts
  59. if: ${{ always() }}
  60. run: |
  61. rm -rf bot-access.txt
  62. - uses: actions/upload-artifact@v4
  63. with:
  64. name: firebase-ios-sdk
  65. path: |
  66. *.podspec
  67. *.podspec.json
  68. buildup_SpecsReleasing_repo_FirebaseCore:
  69. needs: specs_checking
  70. # Don't run on private repo unless it is a PR.
  71. if: github.repository == 'Firebase/firebase-ios-sdk'
  72. runs-on: macos-15
  73. env:
  74. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  75. local_repo: specsreleasing
  76. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  77. targeted_pod: FirebaseCore
  78. steps:
  79. - uses: actions/checkout@v4
  80. - uses: actions/download-artifact@v4.1.7
  81. with:
  82. name: firebase-ios-sdk
  83. path: ${{ env.local_sdk_repo_dir }}
  84. - name: Get token
  85. run: |
  86. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  87. bot-access.txt "$bot_token_secret"
  88. - name: Update SpecsReleasing repo
  89. run: |
  90. botaccess=`cat bot-access.txt`
  91. cd scripts/create_spec_repo/
  92. swift build
  93. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/Firebase/SpecsReleasing.git
  94. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  95. --sdk-repo "${local_sdk_repo_dir}" \
  96. --local-spec-repo-name "${local_repo}" \
  97. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "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_SpecsReleasing_repo:
  105. needs: [buildup_SpecsReleasing_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 == 'workflow_dispatch'
  108. runs-on: macos-15
  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: specsreleasing
  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/release-testing-token.txt.gpg \
  126. bot-access.txt "$bot_token_secret"
  127. - name: Update SpecsReleasing 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/SpecsReleasing.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. --pod-sources 'https://github.com/Firebase/SpecsReleasing' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  140. --include-pods "${targeted_pod}" \
  141. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  142. - name: Clean Artifacts
  143. if: ${{ always() }}
  144. run: |
  145. pod repo remove "${local_repo}"
  146. rm -rf bot-access.txt
  147. abtesting_quickstart:
  148. # Don't run on private repo unless it is a PR.
  149. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  150. needs: buildup_SpecsReleasing_repo
  151. env:
  152. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  153. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  154. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  155. runs-on: macos-14
  156. steps:
  157. - uses: actions/checkout@v4
  158. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  159. - name: Get token
  160. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  161. bot-access.txt "$bot_token_secret"
  162. - name: Setup testing repo and quickstart
  163. env:
  164. LEGACY: true
  165. run: |
  166. botaccess=`cat bot-access.txt`
  167. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  168. - name: Install Secret GoogleService-Info.plist
  169. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  170. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  171. - name: Test swift quickstart
  172. env:
  173. LEGACY: true
  174. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  175. - name: Remove data before upload
  176. env:
  177. LEGACY: true
  178. if: ${{ failure() }}
  179. run: scripts/remove_data.sh config
  180. - uses: actions/upload-artifact@v4
  181. if: ${{ failure() }}
  182. with:
  183. name: quickstart_artifacts_abtesting
  184. path: quickstart-ios/
  185. auth_quickstart:
  186. # Don't run on private repo unless it is a PR.
  187. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  188. needs: buildup_SpecsReleasing_repo
  189. env:
  190. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  191. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  192. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  193. runs-on: macos-15
  194. steps:
  195. - uses: actions/checkout@v4
  196. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  197. - name: Get token
  198. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  199. bot-access.txt "$bot_token_secret"
  200. - name: Xcode
  201. run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
  202. - name: Setup testing repo and quickstart
  203. run: |
  204. botaccess=`cat bot-access.txt`
  205. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  206. - name: Install Secret GoogleService-Info.plist
  207. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  208. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  209. - name: Test swift quickstart
  210. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  211. - name: Remove data before upload
  212. if: ${{ failure() }}
  213. run: scripts/remove_data.sh authentication
  214. - uses: actions/upload-artifact@v4
  215. if: ${{ failure() }}
  216. with:
  217. name: quickstart_artifacts_auth
  218. path: quickstart-ios/
  219. crashlytics_quickstart:
  220. # Don't run on private repo unless it is a PR.
  221. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  222. needs: buildup_SpecsReleasing_repo
  223. env:
  224. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  225. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  226. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  227. testing_repo_dir: "/tmp/test/"
  228. testing_repo: "firebase-ios-sdk"
  229. runs-on: macos-14
  230. steps:
  231. - uses: actions/checkout@v4
  232. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  233. - name: Get token
  234. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  235. bot-access.txt "$bot_token_secret"
  236. - name: Setup testing repo and quickstart
  237. env:
  238. LEGACY: true
  239. run: |
  240. botaccess=`cat bot-access.txt`
  241. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  242. - name: Install Secret GoogleService-Info.plist
  243. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  244. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  245. - name: Test swift quickstart
  246. env:
  247. LEGACY: true
  248. run: |
  249. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  250. # Set the deployed pod location of run and upload-symbols with the development pod version.
  251. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  252. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  253. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  254. - name: Remove data before upload
  255. env:
  256. LEGACY: true
  257. if: ${{ failure() }}
  258. run: scripts/remove_data.sh crashlytics
  259. - uses: actions/upload-artifact@v4
  260. if: ${{ failure() }}
  261. with:
  262. name: quickstart_artifacts_crashlytics
  263. path: quickstart-ios/
  264. database_quickstart:
  265. # Don't run on private repo unless it is a PR.
  266. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  267. needs: buildup_SpecsReleasing_repo
  268. env:
  269. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  270. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  271. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  272. testing_repo_dir: "/tmp/test/"
  273. testing_repo: "firebase-ios-sdk"
  274. runs-on: macos-14
  275. steps:
  276. - uses: actions/checkout@v4
  277. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  278. - name: Get token
  279. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  280. bot-access.txt "$bot_token_secret"
  281. - name: Setup testing repo and quickstart
  282. run: |
  283. botaccess=`cat bot-access.txt`
  284. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  285. - name: Install Secret GoogleService-Info.plist
  286. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  287. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  288. - name: Test objc quickstart
  289. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  290. - name: Test swift quickstart
  291. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  292. - name: Remove data before upload
  293. if: ${{ failure() }}
  294. run: scripts/remove_data.sh database
  295. - uses: actions/upload-artifact@v4
  296. if: ${{ failure() }}
  297. with:
  298. name: quickstart_artifacts_database
  299. path: quickstart-ios/
  300. firestore_quickstart:
  301. # Don't run on private repo unless it is a PR.
  302. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  303. needs: buildup_SpecsReleasing_repo
  304. env:
  305. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  306. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  307. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  308. testing_repo_dir: "/tmp/test/"
  309. testing_repo: "firebase-ios-sdk"
  310. runs-on: macos-14
  311. steps:
  312. - uses: actions/checkout@v4
  313. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  314. - name: Get token
  315. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  316. bot-access.txt "$bot_token_secret"
  317. - name: Setup testing repo and quickstart
  318. run: |
  319. botaccess=`cat bot-access.txt`
  320. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  321. - name: Install Secret GoogleService-Info.plist
  322. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  323. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  324. - name: Test swift quickstart
  325. run: ([ -z $plist_secret ] ||
  326. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  327. - name: Remove data before upload
  328. if: ${{ failure() }}
  329. run: scripts/remove_data.sh firestore
  330. - uses: actions/upload-artifact@v4
  331. if: ${{ failure() }}
  332. with:
  333. name: quickstart_artifacts_firestore
  334. path: quickstart-ios/
  335. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  336. # functions_quickstart:
  337. # # Don't run on private repo unless it is a PR.
  338. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  339. # needs: buildup_SpecsReleasing_repo
  340. # env:
  341. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  342. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  343. # bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  344. # testing_repo_dir: "/tmp/test/"
  345. # testing_repo: "firebase-ios-sdk"
  346. # LEGACY: true
  347. # runs-on: macos-12
  348. # steps:
  349. # - uses: actions/checkout@v4
  350. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  351. # - name: Get token
  352. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  353. # bot-access.txt "$bot_token_secret"
  354. # - name: Setup testing repo and quickstart
  355. # run: |
  356. # botaccess=`cat bot-access.txt`
  357. # BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  358. # - name: install secret googleservice-info.plist
  359. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  360. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  361. # - name: Setup custom URL scheme
  362. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  363. # - name: Test objc quickstart
  364. # run: ([ -z $plist_secret ] ||
  365. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  366. # - name: Test swift quickstart
  367. # run: ([ -z $plist_secret ] ||
  368. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  369. # - name: Remove data before upload
  370. # if: ${{ failure() }}
  371. # run: scripts/remove_data.sh functions
  372. # - uses: actions/upload-artifact@v4
  373. # if: ${{ failure() }}
  374. # with:
  375. # name: quickstart_artifacts_functions
  376. # path: quickstart-ios/
  377. inappmessaging_quickstart:
  378. # Don't run on private repo unless it is a PR.
  379. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  380. needs: buildup_SpecsReleasing_repo
  381. env:
  382. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  383. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  384. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  385. testing_repo_dir: "/tmp/test/"
  386. testing_repo: "firebase-ios-sdk"
  387. runs-on: macos-14
  388. steps:
  389. - uses: actions/checkout@v4
  390. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  391. - name: Get token
  392. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  393. bot-access.txt "$bot_token_secret"
  394. - name: Setup testing repo and quickstart
  395. run: |
  396. botaccess=`cat bot-access.txt`
  397. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  398. - name: install secret googleservice-info.plist
  399. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  400. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  401. - name: Test objc quickstart
  402. run: ([ -z $plist_secret ] ||
  403. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  404. - name: Test swift quickstart
  405. run: ([ -z $plist_secret ] ||
  406. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  407. - name: Remove data before upload
  408. if: ${{ failure() }}
  409. run: scripts/remove_data.sh inappmessaging
  410. - uses: actions/upload-artifact@v4
  411. if: ${{ failure() }}
  412. with:
  413. name: quickstart_artifacts_inappmessaging
  414. path: quickstart-ios/
  415. messaging_quickstart:
  416. # Don't run on private repo unless it is a PR.
  417. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  418. needs: buildup_SpecsReleasing_repo
  419. env:
  420. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  421. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  422. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  423. testing_repo_dir: "/tmp/test/"
  424. testing_repo: "firebase-ios-sdk"
  425. runs-on: macos-14
  426. steps:
  427. - uses: actions/checkout@v4
  428. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  429. - name: Get token
  430. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  431. bot-access.txt "$bot_token_secret"
  432. - name: Setup testing repo and quickstart
  433. run: |
  434. botaccess=`cat bot-access.txt`
  435. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  436. - name: Install Secret GoogleService-Info.plist
  437. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  438. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  439. - name: Test objc quickstart
  440. run: ([ -z $plist_secret ] ||
  441. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  442. - name: Test swift quickstart
  443. run: ([ -z $plist_secret ] ||
  444. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  445. - name: Remove data before upload
  446. if: ${{ failure() }}
  447. run: scripts/remove_data.sh messaging
  448. - uses: actions/upload-artifact@v4
  449. if: ${{ failure() }}
  450. with:
  451. name: quickstart_artifacts_messaging
  452. path: quickstart-ios/
  453. remoteconfig_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. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  461. runs-on: macos-14
  462. steps:
  463. - uses: actions/checkout@v4
  464. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  465. - name: Get token
  466. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  467. bot-access.txt "$bot_token_secret"
  468. - name: Setup testing repo and quickstart
  469. run: |
  470. botaccess=`cat bot-access.txt`
  471. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  472. - name: Install Secret GoogleService-Info.plist
  473. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  474. quickstart-ios/config/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 Config true)
  477. - name: Remove data before upload
  478. if: ${{ failure() }}
  479. run: scripts/remove_data.sh config
  480. - uses: actions/upload-artifact@v4
  481. if: ${{ failure() }}
  482. with:
  483. name: quickstart_artifacts_config
  484. path: quickstart-ios/
  485. storage_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. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  493. testing_repo_dir: "/tmp/test/"
  494. testing_repo: "firebase-ios-sdk"
  495. LEGACY: true
  496. runs-on: macos-14
  497. steps:
  498. - uses: actions/checkout@v4
  499. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  500. - name: Get token
  501. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  502. bot-access.txt "$bot_token_secret"
  503. - name: Setup testing repo and quickstart
  504. run: |
  505. botaccess=`cat bot-access.txt`
  506. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  507. - name: Install Secret GoogleService-Info.plist
  508. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  509. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  510. - name: Test swift quickstart
  511. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  512. - name: Remove data before upload
  513. if: ${{ failure() }}
  514. run: scripts/remove_data.sh storage
  515. - uses: actions/upload-artifact@v4
  516. if: ${{ failure() }}
  517. with:
  518. name: quickstart_artifacts_storage
  519. path: quickstart-ios/
  520. performance_quickstart:
  521. # Don't run on private repo unless it is a PR.
  522. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  523. needs: buildup_SpecsReleasing_repo
  524. env:
  525. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  526. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  527. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  528. testing_repo_dir: "/tmp/test/"
  529. testing_repo: "firebase-ios-sdk"
  530. runs-on: macos-14
  531. steps:
  532. - uses: actions/checkout@v4
  533. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  534. - name: Get token
  535. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  536. bot-access.txt "$bot_token_secret"
  537. - name: Setup testing repo and quickstart
  538. run: |
  539. botaccess=`cat bot-access.txt`
  540. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  541. - name: Install Secret GoogleService-Info.plist
  542. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  543. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  544. - name: Test swift quickstart
  545. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  546. - name: Remove data before upload
  547. if: ${{ failure() }}
  548. run: scripts/remove_data.sh performance
  549. - uses: actions/upload-artifact@v4
  550. if: ${{ failure() }}
  551. with:
  552. name: quickstart_artifacts_performance
  553. path: quickstart-ios/