release.yml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613
  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. dynamiclinks_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 dynamiclinks nightly_release_testing
  321. - name: Install Secret GoogleService-Info.plist
  322. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  323. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  324. - name: Update Environment Variable For DynamicLinks
  325. run: |
  326. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  327. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  328. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  329. - name: Test objc quickstart
  330. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  331. - name: Test swift quickstart
  332. if: ${{ always() }}
  333. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  334. - name: Remove data before upload
  335. if: ${{ failure() }}
  336. run: scripts/remove_data.sh dynamiclinks
  337. - uses: actions/upload-artifact@v4
  338. if: ${{ failure() }}
  339. with:
  340. name: quickstart_artifacts_dynamiclinks
  341. path: quickstart-ios/
  342. firestore_quickstart:
  343. # Don't run on private repo unless it is a PR.
  344. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  345. needs: buildup_SpecsReleasing_repo
  346. env:
  347. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  348. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  349. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  350. testing_repo_dir: "/tmp/test/"
  351. testing_repo: "firebase-ios-sdk"
  352. runs-on: macos-14
  353. steps:
  354. - uses: actions/checkout@v4
  355. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  356. - name: Get token
  357. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  358. bot-access.txt "$bot_token_secret"
  359. - name: Setup testing repo and quickstart
  360. run: |
  361. botaccess=`cat bot-access.txt`
  362. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  363. - name: Install Secret GoogleService-Info.plist
  364. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  365. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  366. - name: Test swift quickstart
  367. run: ([ -z $plist_secret ] ||
  368. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  369. - name: Remove data before upload
  370. if: ${{ failure() }}
  371. run: scripts/remove_data.sh firestore
  372. - uses: actions/upload-artifact@v4
  373. if: ${{ failure() }}
  374. with:
  375. name: quickstart_artifacts_firestore
  376. path: quickstart-ios/
  377. # TODO: The functions quickstart uses Material which isn't supported by Xcode 15
  378. # functions_quickstart:
  379. # # Don't run on private repo unless it is a PR.
  380. # if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  381. # needs: buildup_SpecsReleasing_repo
  382. # env:
  383. # plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  384. # signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  385. # bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  386. # testing_repo_dir: "/tmp/test/"
  387. # testing_repo: "firebase-ios-sdk"
  388. # LEGACY: true
  389. # runs-on: macos-12
  390. # steps:
  391. # - uses: actions/checkout@v4
  392. # - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  393. # - name: Get token
  394. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  395. # bot-access.txt "$bot_token_secret"
  396. # - name: Setup testing repo and quickstart
  397. # run: |
  398. # botaccess=`cat bot-access.txt`
  399. # BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  400. # - name: install secret googleservice-info.plist
  401. # run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  402. # quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  403. # - name: Setup custom URL scheme
  404. # run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  405. # - name: Test objc quickstart
  406. # run: ([ -z $plist_secret ] ||
  407. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  408. # - name: Test swift quickstart
  409. # run: ([ -z $plist_secret ] ||
  410. # scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  411. # - name: Remove data before upload
  412. # if: ${{ failure() }}
  413. # run: scripts/remove_data.sh functions
  414. # - uses: actions/upload-artifact@v4
  415. # if: ${{ failure() }}
  416. # with:
  417. # name: quickstart_artifacts_functions
  418. # path: quickstart-ios/
  419. inappmessaging_quickstart:
  420. # Don't run on private repo unless it is a PR.
  421. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  422. needs: buildup_SpecsReleasing_repo
  423. env:
  424. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  425. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  426. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  427. testing_repo_dir: "/tmp/test/"
  428. testing_repo: "firebase-ios-sdk"
  429. runs-on: macos-14
  430. steps:
  431. - uses: actions/checkout@v4
  432. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  433. - name: Get token
  434. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  435. bot-access.txt "$bot_token_secret"
  436. - name: Setup testing repo and quickstart
  437. run: |
  438. botaccess=`cat bot-access.txt`
  439. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  440. - name: install secret googleservice-info.plist
  441. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  442. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  443. - name: Test objc quickstart
  444. run: ([ -z $plist_secret ] ||
  445. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  446. - name: Test swift quickstart
  447. run: ([ -z $plist_secret ] ||
  448. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  449. - name: Remove data before upload
  450. if: ${{ failure() }}
  451. run: scripts/remove_data.sh inappmessaging
  452. - uses: actions/upload-artifact@v4
  453. if: ${{ failure() }}
  454. with:
  455. name: quickstart_artifacts_inappmessaging
  456. path: quickstart-ios/
  457. messaging_quickstart:
  458. # Don't run on private repo unless it is a PR.
  459. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  460. needs: buildup_SpecsReleasing_repo
  461. env:
  462. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  463. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  464. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  465. testing_repo_dir: "/tmp/test/"
  466. testing_repo: "firebase-ios-sdk"
  467. runs-on: macos-14
  468. steps:
  469. - uses: actions/checkout@v4
  470. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  471. - name: Get token
  472. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  473. bot-access.txt "$bot_token_secret"
  474. - name: Setup testing repo and quickstart
  475. run: |
  476. botaccess=`cat bot-access.txt`
  477. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  478. - name: Install Secret GoogleService-Info.plist
  479. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  480. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  481. - name: Test objc quickstart
  482. run: ([ -z $plist_secret ] ||
  483. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  484. - name: Test swift quickstart
  485. run: ([ -z $plist_secret ] ||
  486. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  487. - name: Remove data before upload
  488. if: ${{ failure() }}
  489. run: scripts/remove_data.sh messaging
  490. - uses: actions/upload-artifact@v4
  491. if: ${{ failure() }}
  492. with:
  493. name: quickstart_artifacts_messaging
  494. path: quickstart-ios/
  495. remoteconfig_quickstart:
  496. # Don't run on private repo unless it is a PR.
  497. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  498. needs: buildup_SpecsReleasing_repo
  499. env:
  500. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  501. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  502. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  503. runs-on: macos-14
  504. steps:
  505. - uses: actions/checkout@v4
  506. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  507. - name: Get token
  508. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  509. bot-access.txt "$bot_token_secret"
  510. - name: Setup testing repo and quickstart
  511. run: |
  512. botaccess=`cat bot-access.txt`
  513. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  514. - name: Install Secret GoogleService-Info.plist
  515. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  516. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  517. - name: Test Swift Quickstart
  518. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  519. - name: Remove data before upload
  520. if: ${{ failure() }}
  521. run: scripts/remove_data.sh config
  522. - uses: actions/upload-artifact@v4
  523. if: ${{ failure() }}
  524. with:
  525. name: quickstart_artifacts_config
  526. path: quickstart-ios/
  527. storage_quickstart:
  528. # Don't run on private repo unless it is a PR.
  529. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  530. needs: buildup_SpecsReleasing_repo
  531. env:
  532. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  533. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  534. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  535. testing_repo_dir: "/tmp/test/"
  536. testing_repo: "firebase-ios-sdk"
  537. LEGACY: true
  538. runs-on: macos-14
  539. steps:
  540. - uses: actions/checkout@v4
  541. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  542. - name: Get token
  543. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  544. bot-access.txt "$bot_token_secret"
  545. - name: Setup testing repo and quickstart
  546. run: |
  547. botaccess=`cat bot-access.txt`
  548. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  549. - name: Install Secret GoogleService-Info.plist
  550. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  551. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  552. - name: Test swift quickstart
  553. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  554. - name: Remove data before upload
  555. if: ${{ failure() }}
  556. run: scripts/remove_data.sh storage
  557. - uses: actions/upload-artifact@v4
  558. if: ${{ failure() }}
  559. with:
  560. name: quickstart_artifacts_storage
  561. path: quickstart-ios/
  562. performance_quickstart:
  563. # Don't run on private repo unless it is a PR.
  564. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  565. needs: buildup_SpecsReleasing_repo
  566. env:
  567. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  568. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  569. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  570. testing_repo_dir: "/tmp/test/"
  571. testing_repo: "firebase-ios-sdk"
  572. runs-on: macos-14
  573. steps:
  574. - uses: actions/checkout@v4
  575. - uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 # v1
  576. - name: Get token
  577. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/release-testing-token.txt.gpg \
  578. bot-access.txt "$bot_token_secret"
  579. - name: Setup testing repo and quickstart
  580. run: |
  581. botaccess=`cat bot-access.txt`
  582. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  583. - name: Install Secret GoogleService-Info.plist
  584. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  585. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  586. - name: Test swift quickstart
  587. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  588. - name: Remove data before upload
  589. if: ${{ failure() }}
  590. run: scripts/remove_data.sh performance
  591. - uses: actions/upload-artifact@v4
  592. if: ${{ failure() }}
  593. with:
  594. name: quickstart_artifacts_performance
  595. path: quickstart-ios/