release.yml 29 KB

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