build icon indicating copy to clipboard operation
build copied to clipboard

Disable incremental build using transitive digests

Open haenah opened this issue 9 months ago • 2 comments

  • Dart SDK Version: 3.3.3
  • Package: build_resolvers 2.4.2

I recently implemented a CI/CD system using GitHub Actions to deploy our company's Flutter app. However, running build_runner takes an immense amount of time. Therefore, I investigated which builders were causing the delay. Through performance tracking of build_runner, I discovered that build_resolvers|transitive_digests was consuming time by digesting all package dependencies, particularly in the CI environment. I speculate this slowdown is due to the lack of dedicated digest computing hardware on GitHub-hosted runner machines compared to Apple Silicon Mac(It gets 20 times slower on github-hosted runner, which is almost 5 minutes). Implementing a lightweight build resolver that omits generating transitive digests could significantly reduce build times in environments not requiring incremental builds, especially as CI environments. I welcome your insights. Are there any reasons why digesting is mandatory even in environments that do not necessitate incremental builds?

haenah avatar May 09 '24 08:05 haenah