release.yml 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608
  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@v1
  162. - name: Get token
  163. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  164. bot-access.txt "$bot_token_secret"
  165. - name: Setup testing repo and quickstart
  166. env:
  167. LEGACY: true
  168. run: |
  169. botaccess=`cat bot-access.txt`
  170. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting nightly_release_testing
  171. - name: Install Secret GoogleService-Info.plist
  172. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
  173. quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
  174. - name: Test swift quickstart
  175. env:
  176. LEGACY: true
  177. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting true)
  178. - name: Remove data before upload
  179. env:
  180. LEGACY: true
  181. run: scripts/remove_data.sh config release_testing
  182. - uses: actions/upload-artifact@v2
  183. if: ${{ failure() }}
  184. with:
  185. name: quickstart_artifacts_abtesting
  186. path: quickstart-ios/
  187. auth_quickstart:
  188. # Don't run on private repo unless it is a PR.
  189. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  190. needs: buildup_SpecsTesting_repo
  191. env:
  192. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  193. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  194. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  195. runs-on: macos-12
  196. steps:
  197. - uses: actions/checkout@v2
  198. - uses: ruby/setup-ruby@v1
  199. - name: Get token
  200. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  201. bot-access.txt "$bot_token_secret"
  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. run: scripts/remove_data.sh authentication release_testing
  213. - uses: actions/upload-artifact@v2
  214. if: ${{ failure() }}
  215. with:
  216. name: quickstart_artifacts_auth
  217. path: quickstart-ios/
  218. crashlytics_quickstart:
  219. # Don't run on private repo unless it is a PR.
  220. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  221. needs: buildup_SpecsTesting_repo
  222. env:
  223. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  224. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  225. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  226. testing_repo_dir: "/tmp/test/"
  227. testing_repo: "firebase-ios-sdk"
  228. runs-on: macos-12
  229. steps:
  230. - uses: actions/checkout@v2
  231. - uses: ruby/setup-ruby@v1
  232. - name: Get token
  233. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  234. bot-access.txt "$bot_token_secret"
  235. - name: Setup testing repo and quickstart
  236. env:
  237. LEGACY: true
  238. run: |
  239. botaccess=`cat bot-access.txt`
  240. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics nightly_release_testing
  241. - name: Install Secret GoogleService-Info.plist
  242. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
  243. quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
  244. - name: Test objc quickstart
  245. env:
  246. LEGACY: true
  247. run: |
  248. mkdir -p quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics
  249. # Set the deployed pod location of run and upload-symbols with the development pod version.
  250. cp Crashlytics/run quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  251. cp Crashlytics/upload-symbols quickstart-ios/crashlytics/LegacyCrashlyticsQuickstart/Pods/FirebaseCrashlytics/
  252. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true)
  253. - name: Test swift quickstart
  254. env:
  255. LEGACY: true
  256. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics true swift)
  257. - name: Remove data before upload
  258. env:
  259. LEGACY: true
  260. run: scripts/remove_data.sh crashlytics release_testing
  261. - uses: actions/upload-artifact@v2
  262. if: ${{ failure() }}
  263. with:
  264. name: quickstart_artifacts_crashlytics
  265. path: quickstart-ios/
  266. database_quickstart:
  267. # Don't run on private repo unless it is a PR.
  268. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  269. needs: buildup_SpecsTesting_repo
  270. env:
  271. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  272. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  273. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  274. testing_repo_dir: "/tmp/test/"
  275. testing_repo: "firebase-ios-sdk"
  276. runs-on: macos-12
  277. steps:
  278. - uses: actions/checkout@v2
  279. - uses: ruby/setup-ruby@v1
  280. - name: Get token
  281. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  282. bot-access.txt "$bot_token_secret"
  283. - name: Setup testing repo and quickstart
  284. run: |
  285. botaccess=`cat bot-access.txt`
  286. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database nightly_release_testing
  287. - name: Install Secret GoogleService-Info.plist
  288. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
  289. quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
  290. - name: Test objc quickstart
  291. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false)
  292. - name: Test swift quickstart
  293. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database false swift)
  294. - name: Remove data before upload
  295. run: scripts/remove_data.sh database release_testing
  296. - uses: actions/upload-artifact@v2
  297. if: ${{ failure() }}
  298. with:
  299. name: quickstart_artifacts_database
  300. path: quickstart-ios/
  301. dynamiclinks_quickstart:
  302. # Don't run on private repo unless it is a PR.
  303. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  304. needs: buildup_SpecsTesting_repo
  305. env:
  306. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  307. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  308. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  309. testing_repo_dir: "/tmp/test/"
  310. testing_repo: "firebase-ios-sdk"
  311. runs-on: macos-12
  312. steps:
  313. - uses: actions/checkout@v2
  314. - uses: ruby/setup-ruby@v1
  315. - name: Get token
  316. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  317. bot-access.txt "$bot_token_secret"
  318. - name: Setup testing repo and quickstart
  319. run: |
  320. botaccess=`cat bot-access.txt`
  321. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks nightly_release_testing
  322. - name: Install Secret GoogleService-Info.plist
  323. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
  324. quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
  325. - name: Update Environment Variable For DynamicLinks
  326. run: |
  327. sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
  328. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
  329. sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
  330. - name: Test objc quickstart
  331. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true)
  332. - name: Test swift quickstart
  333. if: ${{ always() }}
  334. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks true swift)
  335. - name: Remove data before upload
  336. run: scripts/remove_data.sh dynamiclinks release_testing
  337. - uses: actions/upload-artifact@v2
  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_SpecsTesting_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-12
  353. steps:
  354. - uses: actions/checkout@v2
  355. - uses: ruby/setup-ruby@v1
  356. - name: Get token
  357. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.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. run: scripts/remove_data.sh firestore release_testing
  371. - uses: actions/upload-artifact@v2
  372. if: ${{ failure() }}
  373. with:
  374. name: quickstart_artifacts_firestore
  375. path: quickstart-ios/
  376. functions_quickstart:
  377. # Don't run on private repo unless it is a PR.
  378. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  379. needs: buildup_SpecsTesting_repo
  380. env:
  381. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  382. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  383. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  384. testing_repo_dir: "/tmp/test/"
  385. testing_repo: "firebase-ios-sdk"
  386. LEGACY: true
  387. runs-on: macos-12
  388. steps:
  389. - uses: actions/checkout@v2
  390. - uses: ruby/setup-ruby@v1
  391. - name: Get token
  392. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  393. bot-access.txt "$bot_token_secret"
  394. - name: Setup testing repo and quickstart
  395. run: |
  396. botaccess=`cat bot-access.txt`
  397. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions nightly_release_testing
  398. - name: install secret googleservice-info.plist
  399. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
  400. quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
  401. - name: Setup custom URL scheme
  402. run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/LegacyFunctionsQuickstart/FunctionsExample/Info.plist
  403. - name: Test objc quickstart
  404. run: ([ -z $plist_secret ] ||
  405. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true)
  406. - name: Test swift quickstart
  407. run: ([ -z $plist_secret ] ||
  408. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions true swift)
  409. - name: Remove data before upload
  410. run: scripts/remove_data.sh functions release_testing
  411. - uses: actions/upload-artifact@v2
  412. if: ${{ failure() }}
  413. with:
  414. name: quickstart_artifacts_functions
  415. path: quickstart-ios/
  416. inappmessaging_quickstart:
  417. # Don't run on private repo unless it is a PR.
  418. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  419. needs: buildup_SpecsTesting_repo
  420. env:
  421. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  422. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  423. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  424. testing_repo_dir: "/tmp/test/"
  425. testing_repo: "firebase-ios-sdk"
  426. runs-on: macos-12
  427. steps:
  428. - uses: actions/checkout@v2
  429. - uses: ruby/setup-ruby@v1
  430. - name: Get token
  431. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  432. bot-access.txt "$bot_token_secret"
  433. - name: Setup testing repo and quickstart
  434. run: |
  435. botaccess=`cat bot-access.txt`
  436. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging nightly_release_testing
  437. - name: install secret googleservice-info.plist
  438. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
  439. quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
  440. - name: Test objc quickstart
  441. run: ([ -z $plist_secret ] ||
  442. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true)
  443. - name: Test swift quickstart
  444. run: ([ -z $plist_secret ] ||
  445. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging true swift)
  446. - name: Remove data before upload
  447. run: scripts/remove_data.sh inappmessaging release_testing
  448. - uses: actions/upload-artifact@v2
  449. if: ${{ failure() }}
  450. with:
  451. name: quickstart_artifacts_inappmessaging
  452. path: quickstart-ios/
  453. messaging_quickstart:
  454. # Don't run on private repo unless it is a PR.
  455. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  456. needs: buildup_SpecsTesting_repo
  457. env:
  458. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  459. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  460. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  461. testing_repo_dir: "/tmp/test/"
  462. testing_repo: "firebase-ios-sdk"
  463. runs-on: macos-12
  464. steps:
  465. - uses: actions/checkout@v2
  466. - uses: ruby/setup-ruby@v1
  467. - name: Get token
  468. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  469. bot-access.txt "$bot_token_secret"
  470. - name: Setup testing repo and quickstart
  471. run: |
  472. botaccess=`cat bot-access.txt`
  473. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging nightly_release_testing
  474. - name: Install Secret GoogleService-Info.plist
  475. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
  476. quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
  477. - name: Test objc quickstart
  478. run: ([ -z $plist_secret ] ||
  479. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false)
  480. - name: Test swift quickstart
  481. run: ([ -z $plist_secret ] ||
  482. scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging false swift)
  483. - name: Remove data before upload
  484. run: scripts/remove_data.sh messaging release_testing
  485. - uses: actions/upload-artifact@v2
  486. if: ${{ failure() }}
  487. with:
  488. name: quickstart_artifacts_messaging
  489. path: quickstart-ios/
  490. remoteconfig_quickstart:
  491. # Don't run on private repo unless it is a PR.
  492. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  493. needs: buildup_SpecsTesting_repo
  494. env:
  495. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  496. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  497. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  498. runs-on: macos-12
  499. steps:
  500. - uses: actions/checkout@v2
  501. - uses: ruby/setup-ruby@v1
  502. - name: Get token
  503. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  504. bot-access.txt "$bot_token_secret"
  505. - name: Setup testing repo and quickstart
  506. run: |
  507. botaccess=`cat bot-access.txt`
  508. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
  509. - name: Install Secret GoogleService-Info.plist
  510. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
  511. quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
  512. - name: Test Swift Quickstart
  513. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config true)
  514. - name: Remove data before upload
  515. run: scripts/remove_data.sh config release_testing
  516. - uses: actions/upload-artifact@v2
  517. if: ${{ failure() }}
  518. with:
  519. name: quickstart_artifacts_config
  520. path: quickstart-ios/
  521. storage_quickstart:
  522. # Don't run on private repo unless it is a PR.
  523. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  524. needs: buildup_SpecsTesting_repo
  525. env:
  526. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  527. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  528. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  529. testing_repo_dir: "/tmp/test/"
  530. testing_repo: "firebase-ios-sdk"
  531. LEGACY: true
  532. runs-on: macos-12
  533. steps:
  534. - uses: actions/checkout@v2
  535. - uses: ruby/setup-ruby@v1
  536. - name: Get token
  537. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  538. bot-access.txt "$bot_token_secret"
  539. - name: Setup testing repo and quickstart
  540. run: |
  541. botaccess=`cat bot-access.txt`
  542. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage nightly_release_testing
  543. - name: Install Secret GoogleService-Info.plist
  544. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
  545. quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
  546. - name: Test objc quickstart
  547. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true)
  548. - name: Test swift quickstart
  549. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage true swift)
  550. - name: Remove data before upload
  551. run: scripts/remove_data.sh storage release_testing
  552. - uses: actions/upload-artifact@v2
  553. if: ${{ failure() }}
  554. with:
  555. name: quickstart_artifacts_storage
  556. path: quickstart-ios/
  557. performance_quickstart:
  558. # Don't run on private repo unless it is a PR.
  559. if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
  560. needs: buildup_SpecsTesting_repo
  561. env:
  562. plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  563. signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  564. bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
  565. testing_repo_dir: "/tmp/test/"
  566. testing_repo: "firebase-ios-sdk"
  567. runs-on: macos-12
  568. steps:
  569. - uses: actions/checkout@v2
  570. - uses: ruby/setup-ruby@v1
  571. - name: Get token
  572. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
  573. bot-access.txt "$bot_token_secret"
  574. - name: Setup testing repo and quickstart
  575. run: |
  576. botaccess=`cat bot-access.txt`
  577. BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Performance nightly_release_testing
  578. - name: Install Secret GoogleService-Info.plist
  579. run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-performance.plist.gpg \
  580. quickstart-ios/performance/GoogleService-Info.plist "$plist_secret"
  581. - name: Test objc quickstart
  582. run: |
  583. ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true)
  584. - name: Test swift quickstart
  585. run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Performance true swift)
  586. - name: Remove data before upload
  587. run: scripts/remove_data.sh performance release_testing
  588. - uses: actions/upload-artifact@v2
  589. if: ${{ failure() }}
  590. with:
  591. name: quickstart_artifacts_performance
  592. path: quickstart-ios/