nimblehq / nimble-crypto-ios

This is an sample Crypto market prices ap built with SwiftUI and modularization architecture. The application data is making use of the free APIs provided by Coingecko.
MIT License
33 stars 8 forks source link

[#47] [Chore] [Spike] Cache remote Swift packages build-artifacts on CI #70

Closed nkhanh44 closed 1 year ago

nkhanh44 commented 1 year ago

What happened 👀

Insight 📝

The flow of caching:

  1. Restoring cache
  2. Build
  3. Saving cache

Proof Of Work 📹

Build and Test Using cache speeds up build up to ~1min. ![Screenshot 2022-12-26 at 10 05 48](https://user-images.githubusercontent.com/25881847/209494580-dc8d568b-cabd-45c3-869b-2069c39a2bc7.png) => [Job with caching](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3776854252) => [Job without caching](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3776813587) ![Screenshot 2022-12-26 at 10 03 37](https://user-images.githubusercontent.com/25881847/209494454-faa7f5e5-901b-4c6f-936a-1e0ac01cbea0.png) => [Job with caching](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3776490498) => [Job without caching](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3774802317) Dependencies change when we add a lib (Kingfisher, for example). On [this job](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3776626724/jobs/6420007037): ![Screenshot 2022-12-26 at 10 10 39](https://user-images.githubusercontent.com/25881847/209495034-8dac8206-0073-4df3-b1b7-2e0e4e17c37c.png)
Deploy Firebase On [this job](https://github.com/nimblehq/nimble-crypto-ios/actions/runs/3778923046/jobs/6423842708): ![Screenshot 2022-12-26 at 11 28 23](https://user-images.githubusercontent.com/25881847/209499948-cdc65bf3-2f3f-477e-8ef3-e2995e466c41.png)
nkhanh44 commented 1 year ago

@Thieurom Thank you for the helpful feedback 🙏, it's so useful to me. I researched some resources about caching remotely for SPM, but I couldn't find any except for other tools like tuist caching or the tools you mentioned above. For my limited experience and time, I agree that we can use this small speedup improvement, and we will explore a better approach later 😅 .