Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Why this is worth doing: test-coverage was the one job guaranteed to do a cold, full, instrumented build on every run. disk-cache: false meant nothing was restored, and cleanFull cleared sbt's action cache anyway, so even a restored cache would have been thrown away before the first compile.
|
mr-git
left a comment
There was a problem hiding this comment.
I read the description and comment, but I do not understand what this fixes
|
Not a bugfix. The intention is to include the coverage phase into the cache, so builds get faster. |
Is it wise? If SBT will recover cache for Release build, could it pack instrumented artifacts instead of freshly built ones? |
|
Honestly, I do not understand why would we want to restore the coverage reports from previous run? |
|
We don't, they just come along inside target/out and the "drop stale coverage data" step deletes them before the build. What we want back is the compiled classes plus scoverage.coverage, the instrumentation metadata the report is generated from. |
|
because of coverage is kinda separate build step - caching ~/.cache/sbt and target/out (for zinc) saves a build time. |
|
@stasimus, have you tested this on any repo? probably we need an internal testing repo to clear my fear of releasing instrumented binaries. |
The coverage job rebuilt everything every run.
cleanFullwiped sbt's action cache, and the cache alone isn't enough: it restoresclassesbut not scoverage'sscoverage-data, so a hit crashed the tests.~/.cache/sbtandtarget/outnow share one entry, stale measurements get dropped,cleanFullis off.