release.yml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  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. concurrency:
  13. group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  14. cancel-in-progress: true
  15. jobs:
  16. specs_checking:
  17. # Don't run on private repo unless it is a PR.
  18. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'workflow_dispatch'
  19. runs-on: macos-12
  20. env:
  21. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  22. # The SDK repo will be cloned to this dir and podspecs from
  23. # 'podspec_repo_branch' of this repo will be validated and pushed to the
  24. # testing repo.
  25. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  26. local_repo: specstesting
  27. podspec_repo_branch: master
  28. outputs:
  29. matrix: ${{ steps.generate_matrix.outputs.matrix }}
  30. steps:
  31. - name: Checkout code
  32. uses: actions/checkout@v3
  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: Get token
  40. run: |
  41. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  42. bot-access.txt "$bot_token_secret"
  43. - name: Update SpecsTesting repo setup
  44. run: |
  45. botaccess=`cat bot-access.txt`
  46. BOT_TOKEN="${botaccess}" test_version="${nightly_version}" \
  47. sdk_version_config="${GITHUB_WORKSPACE}/scripts/create_spec_repo/RC_firebase_sdk.textproto" \
  48. local_sdk_repo_dir="${local_sdk_repo_dir}" \
  49. podspec_repo_branch="${podspec_repo_branch}" \
  50. scripts/release_testing_setup.sh release_testing
  51. - name: Clean spec repo
  52. run: |
  53. botaccess=`cat bot-access.txt`
  54. git clone --quiet https://"$botaccess"@github.com/FirebasePrivate/SpecsTesting.git "${local_repo}"
  55. cd "${local_repo}"
  56. # Remove all unhidden dirs, i.e. all podspec dir from the spec repo.
  57. rm -Rf -- */
  58. git add .
  59. # commit without diff will throw an error. `git diff --exit-code` can avoid such error.
  60. git diff --staged --exit-code || git commit -m "Empty spec repo."
  61. git push
  62. - name: Clean Artifacts
  63. if: ${{ always() }}
  64. run: |
  65. rm -rf bot-access.txt
  66. - uses: actions/upload-artifact@v3
  67. with:
  68. name: firebase-ios-sdk
  69. path: |
  70. ${{ env.local_sdk_repo_dir }}/*.podspec
  71. ${{ env.local_sdk_repo_dir }}/*.podspec.json
  72. buildup_SpecsTesting_repo_FirebaseCore:
  73. needs: specs_checking
  74. # Don't run on private repo unless it is a PR.
  75. if: github.repository == 'Firebase/firebase-ios-sdk'
  76. runs-on: macos-12
  77. env:
  78. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  79. local_repo: specstesting
  80. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  81. targeted_pod: FirebaseCore
  82. steps:
  83. - uses: actions/checkout@v3
  84. - uses: actions/download-artifact@v3
  85. with:
  86. name: firebase-ios-sdk
  87. path: ${{ env.local_sdk_repo_dir }}
  88. - name: Get token
  89. run: |
  90. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  91. bot-access.txt "$bot_token_secret"
  92. - name: Update SpecsTesting repo
  93. run: |
  94. botaccess=`cat bot-access.txt`
  95. cd scripts/create_spec_repo/
  96. swift build
  97. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/FirebasePrivate/SpecsTesting.git
  98. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  99. --sdk-repo "${local_sdk_repo_dir}" \
  100. --local-spec-repo-name "${local_repo}" \
  101. --pod-sources 'https://${BOT_TOKEN}@github.com/FirebasePrivate/SpecsTesting' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  102. --include-pods "${targeted_pod}" --keep-repo
  103. - name: Clean Artifacts
  104. if: ${{ always() }}
  105. run: |
  106. pod repo remove "${local_repo}"
  107. rm -rf bot-access.txt
  108. buildup_SpecsTesting_repo:
  109. needs: [buildup_SpecsTesting_repo_FirebaseCore, specs_checking]
  110. # Don't run on private repo unless it is a PR.
  111. if: github.repository == 'Firebase/firebase-ios-sdk'
  112. runs-on: macos-12
  113. strategy:
  114. fail-fast: false
  115. matrix: ${{fromJson(needs.specs_checking.outputs.matrix)}}
  116. env:
  117. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  118. local_repo: specstesting
  119. local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
  120. targeted_pod: ${{ matrix.podspec }}
  121. steps:
  122. - uses: actions/checkout@v3
  123. - uses: actions/download-artifact@v3
  124. with:
  125. name: firebase-ios-sdk
  126. path: ${{ env.local_sdk_repo_dir }}
  127. - name: Get token
  128. run: |
  129. scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  130. bot-access.txt "$bot_token_secret"
  131. - name: Update SpecsTesting repo
  132. run: |
  133. [[ ${{ matrix.allowwarnings }} == true ]] && ALLOWWARNINGS=true
  134. botaccess=`cat bot-access.txt`
  135. cd scripts/create_spec_repo/
  136. swift build
  137. pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/FirebasePrivate/SpecsTesting.git
  138. # ${ALLOWWARNINGS:+--allow-warnings} will add --allow-warnings to the
  139. # command if ${ALLOWWARNINGS} is not null.
  140. BOT_TOKEN="${botaccess}" ${GITHUB_WORKSPACE}/scripts/third_party/travis/retry.sh .build/debug/spec-repo-builder \
  141. --sdk-repo "${local_sdk_repo_dir}" \
  142. --local-spec-repo-name "${local_repo}" \
  143. --pod-sources 'https://${BOT_TOKEN}@github.com/FirebasePrivate/SpecsTesting' "https://github.com/firebase/SpecsStaging.git" "https://github.com/CocoaPods/Specs.git" \
  144. --include-pods "${targeted_pod}" \
  145. --keep-repo ${ALLOWWARNINGS:+--allow-warnings}
  146. - name: Clean Artifacts
  147. if: ${{ always() }}
  148. run: |
  149. pod repo remove "${local_repo}"
  150. rm -rf bot-access.txt
  151. abtesting_quickstart:
  152. # Don't run on private repo unless it is a PR.
  153. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  154. needs: buildup_SpecsTesting_repo
  155. env:
  156. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  157. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  158. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  159. runs-on: macos-12
  160. steps:
  161. - uses: actions/checkout@v3
  162. - uses: ruby/setup-ruby@v1
  163. - name: Get token
  164. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  165. bot-access.txt "$bot_token_secret"
  166. - name: Setup testing repo and quickstart
  167. env:
  168. LEGACY: true
  169. run: |
  170. botaccess=`cat bot-access.txt`
  171. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  172. - name: Install Secret GoogleService-Info.plist
  173. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  174. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  175. - name: Test swift quickstart
  176. env:
  177. LEGACY: true
  178. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  179. - name: Remove data before upload
  180. env:
  181. LEGACY: true
  182. run: scripts/remove_data.sh config release_testing
  183. - uses: actions/upload-artifact@v2
  184. if: ${{ failure() }}
  185. with:
  186. name: quickstart_artifacts_abtesting
  187. path: quickstart-ios/
  188. auth_quickstart:
  189. # Don't run on private repo unless it is a PR.
  190. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  191. needs: buildup_SpecsTesting_repo
  192. env:
  193. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  194. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  195. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  196. runs-on: macos-12
  197. steps:
  198. - uses: actions/checkout@v3
  199. - uses: ruby/setup-ruby@v1
  200. - name: Get token
  201. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  202. bot-access.txt "$bot_token_secret"
  203. - name: Setup testing repo and quickstart
  204. run: |
  205. botaccess=`cat bot-access.txt`
  206. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication nightly_release_testing
  207. - name: Install Secret GoogleService-Info.plist
  208. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
  209. quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
  210. - name: Test swift quickstart
  211. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication false)
  212. - name: Remove data before upload
  213. run: scripts/remove_data.sh authentication release_testing
  214. - uses: actions/upload-artifact@v2
  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_SpecsTesting_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-12
  230. steps:
  231. - uses: actions/checkout@v3
  232. - uses: ruby/setup-ruby@v1
  233. - name: Get token
  234. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.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 objc 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)
  254. - name: Test swift quickstart
  255. env:
  256. LEGACY: true
  257. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  258. - name: Remove data before upload
  259. env:
  260. LEGACY: true
  261. run: scripts/remove_data.sh crashlytics release_testing
  262. - uses: actions/upload-artifact@v2
  263. if: ${{ failure() }}
  264. with:
  265. name: quickstart_artifacts_crashlytics
  266. path: quickstart-ios/
  267. database_quickstart:
  268. # Don't run on private repo unless it is a PR.
  269. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  270. needs: buildup_SpecsTesting_repo
  271. env:
  272. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  273. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  274. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  275. testing_repo_dir: "/tmp/test/"
  276. testing_repo: "firebase-ios-sdk"
  277. runs-on: macos-12
  278. steps:
  279. - uses: actions/checkout@v3
  280. - uses: ruby/setup-ruby@v1
  281. - name: Get token
  282. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  283. bot-access.txt "$bot_token_secret"
  284. - name: Setup testing repo and quickstart
  285. run: |
  286. botaccess=`cat bot-access.txt`
  287. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  288. - name: Install Secret GoogleService-Info.plist
  289. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  290. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  291. - name: Test objc quickstart
  292. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  293. - name: Test swift quickstart
  294. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  295. - name: Remove data before upload
  296. run: scripts/remove_data.sh database release_testing
  297. - uses: actions/upload-artifact@v2
  298. if: ${{ failure() }}
  299. with:
  300. name: quickstart_artifacts_database
  301. path: quickstart-ios/
  302. dynamiclinks_quickstart:
  303. # Don't run on private repo unless it is a PR.
  304. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  305. needs: buildup_SpecsTesting_repo
  306. env:
  307. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  308. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  309. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  310. testing_repo_dir: "/tmp/test/"
  311. testing_repo: "firebase-ios-sdk"
  312. runs-on: macos-12
  313. steps:
  314. - uses: actions/checkout@v3
  315. - uses: ruby/setup-ruby@v1
  316. - name: Get token
  317. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  318. bot-access.txt "$bot_token_secret"
  319. - name: Setup testing repo and quickstart
  320. run: |
  321. botaccess=`cat bot-access.txt`
  322. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks nightly_release_testing
  323. - name: Install Secret GoogleService-Info.plist
  324. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  325. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  326. - name: Update Environment Variable For DynamicLinks
  327. run: |
  328. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  329. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  330. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  331. - name: Test objc quickstart
  332. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  333. - name: Test swift quickstart
  334. if: ${{ always() }}
  335. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  336. - name: Remove data before upload
  337. run: scripts/remove_data.sh dynamiclinks release_testing
  338. - uses: actions/upload-artifact@v2
  339. if: ${{ failure() }}
  340. with:
  341. name: quickstart_artifacts_dynamiclinks
  342. path: quickstart-ios/
  343. firestore_quickstart:
  344. # Don't run on private repo unless it is a PR.
  345. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  346. needs: buildup_SpecsTesting_repo
  347. env:
  348. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  349. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  350. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  351. testing_repo_dir: "/tmp/test/"
  352. testing_repo: "firebase-ios-sdk"
  353. runs-on: macos-12
  354. steps:
  355. - uses: actions/checkout@v3
  356. - uses: ruby/setup-ruby@v1
  357. - name: Get token
  358. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  359. bot-access.txt "$bot_token_secret"
  360. - name: Setup testing repo and quickstart
  361. run: |
  362. botaccess=`cat bot-access.txt`
  363. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore nightly_release_testing
  364. - name: Install Secret GoogleService-Info.plist
  365. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
  366. quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
  367. - name: Test swift quickstart
  368. run: ([ -z $plist_secret ] ||
  369. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore false)
  370. - name: Remove data before upload
  371. run: scripts/remove_data.sh firestore release_testing
  372. - uses: actions/upload-artifact@v2
  373. if: ${{ failure() }}
  374. with:
  375. name: quickstart_artifacts_firestore
  376. path: quickstart-ios/
  377. functions_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_SpecsTesting_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. LEGACY: true
  388. runs-on: macos-12
  389. steps:
  390. - uses: actions/checkout@v3
  391. - uses: ruby/setup-ruby@v1
  392. - name: Get token
  393. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  394. bot-access.txt "$bot_token_secret"
  395. - name: Setup testing repo and quickstart
  396. run: |
  397. botaccess=`cat bot-access.txt`
  398. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  399. - name: install secret googleservice-info.plist
  400. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  401. quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  402. - name: Setup custom URL scheme
  403. run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  404. - name: Test objc quickstart
  405. run: ([ -z $plist_secret ] ||
  406. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  407. - name: Test swift quickstart
  408. run: ([ -z $plist_secret ] ||
  409. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  410. - name: Remove data before upload
  411. run: scripts/remove_data.sh functions release_testing
  412. - uses: actions/upload-artifact@v2
  413. if: ${{ failure() }}
  414. with:
  415. name: quickstart_artifacts_functions
  416. path: quickstart-ios/
  417. inappmessaging_quickstart:
  418. # Don't run on private repo unless it is a PR.
  419. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  420. needs: buildup_SpecsTesting_repo
  421. env:
  422. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  423. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  424. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  425. testing_repo_dir: "/tmp/test/"
  426. testing_repo: "firebase-ios-sdk"
  427. runs-on: macos-12
  428. steps:
  429. - uses: actions/checkout@v3
  430. - uses: ruby/setup-ruby@v1
  431. - name: Get token
  432. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  433. bot-access.txt "$bot_token_secret"
  434. - name: Setup testing repo and quickstart
  435. run: |
  436. botaccess=`cat bot-access.txt`
  437. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  438. - name: install secret googleservice-info.plist
  439. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  440. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  441. - name: Test objc quickstart
  442. run: ([ -z $plist_secret ] ||
  443. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  444. - name: Test swift quickstart
  445. run: ([ -z $plist_secret ] ||
  446. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  447. - name: Remove data before upload
  448. run: scripts/remove_data.sh inappmessaging release_testing
  449. - uses: actions/upload-artifact@v2
  450. if: ${{ failure() }}
  451. with:
  452. name: quickstart_artifacts_inappmessaging
  453. path: quickstart-ios/
  454. messaging_quickstart:
  455. # Don't run on private repo unless it is a PR.
  456. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  457. needs: buildup_SpecsTesting_repo
  458. env:
  459. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  460. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  461. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  462. testing_repo_dir: "/tmp/test/"
  463. testing_repo: "firebase-ios-sdk"
  464. runs-on: macos-12
  465. steps:
  466. - uses: actions/checkout@v3
  467. - uses: ruby/setup-ruby@v1
  468. - name: Get token
  469. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  470. bot-access.txt "$bot_token_secret"
  471. - name: Setup testing repo and quickstart
  472. run: |
  473. botaccess=`cat bot-access.txt`
  474. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  475. - name: Install Secret GoogleService-Info.plist
  476. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  477. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  478. - name: Test objc quickstart
  479. run: ([ -z $plist_secret ] ||
  480. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  481. - name: Test swift quickstart
  482. run: ([ -z $plist_secret ] ||
  483. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  484. - name: Remove data before upload
  485. run: scripts/remove_data.sh messaging release_testing
  486. - uses: actions/upload-artifact@v2
  487. if: ${{ failure() }}
  488. with:
  489. name: quickstart_artifacts_messaging
  490. path: quickstart-ios/
  491. remoteconfig_quickstart:
  492. # Don't run on private repo unless it is a PR.
  493. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  494. needs: buildup_SpecsTesting_repo
  495. env:
  496. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  497. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  498. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  499. runs-on: macos-12
  500. steps:
  501. - uses: actions/checkout@v3
  502. - uses: ruby/setup-ruby@v1
  503. - name: Get token
  504. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  505. bot-access.txt "$bot_token_secret"
  506. - name: Setup testing repo and quickstart
  507. run: |
  508. botaccess=`cat bot-access.txt`
  509. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  510. - name: Install Secret GoogleService-Info.plist
  511. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  512. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  513. - name: Test Swift Quickstart
  514. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  515. - name: Remove data before upload
  516. run: scripts/remove_data.sh config release_testing
  517. - uses: actions/upload-artifact@v2
  518. if: ${{ failure() }}
  519. with:
  520. name: quickstart_artifacts_config
  521. path: quickstart-ios/
  522. storage_quickstart:
  523. # Don't run on private repo unless it is a PR.
  524. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  525. needs: buildup_SpecsTesting_repo
  526. env:
  527. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  528. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  529. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  530. testing_repo_dir: "/tmp/test/"
  531. testing_repo: "firebase-ios-sdk"
  532. LEGACY: true
  533. runs-on: macos-12
  534. steps:
  535. - uses: actions/checkout@v3
  536. - uses: ruby/setup-ruby@v1
  537. - name: Get token
  538. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  539. bot-access.txt "$bot_token_secret"
  540. - name: Setup testing repo and quickstart
  541. run: |
  542. botaccess=`cat bot-access.txt`
  543. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  544. - name: Install Secret GoogleService-Info.plist
  545. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  546. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  547. - name: Test objc quickstart
  548. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true)
  549. - name: Test swift quickstart
  550. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  551. - name: Remove data before upload
  552. run: scripts/remove_data.sh storage release_testing
  553. - uses: actions/upload-artifact@v2
  554. if: ${{ failure() }}
  555. with:
  556. name: quickstart_artifacts_storage
  557. path: quickstart-ios/
  558. performance_quickstart:
  559. # Don't run on private repo unless it is a PR.
  560. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  561. needs: buildup_SpecsTesting_repo
  562. env:
  563. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  564. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  565. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  566. testing_repo_dir: "/tmp/test/"
  567. testing_repo: "firebase-ios-sdk"
  568. runs-on: macos-12
  569. steps:
  570. - uses: actions/checkout@v3
  571. - uses: ruby/setup-ruby@v1
  572. - name: Get token
  573. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  574. bot-access.txt "$bot_token_secret"
  575. - name: Setup testing repo and quickstart
  576. run: |
  577. botaccess=`cat bot-access.txt`
  578. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  579. - name: Install Secret GoogleService-Info.plist
  580. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  581. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  582. - name: Test objc quickstart
  583. run: |
  584. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true)
  585. - name: Test swift quickstart
  586. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  587. - name: Remove data before upload
  588. run: scripts/remove_data.sh performance release_testing
  589. - uses: actions/upload-artifact@v2
  590. if: ${{ failure() }}
  591. with:
  592. name: quickstart_artifacts_performance
  593. path: quickstart-ios/