prerelease.yml 31 KB

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