Request
This is a request to consider calling cargo build from within cargo-llvm-cov.
Reasoning
CI systems are mostly building dev profile and running tests with coverage. As cargo-llvm-cov introduces special setup for tests, dev builds intermediate and final objects cannot be resused by the pipeline, implying recompilation of the whole codebase.
This waste time and resources. This is more critical on CI systems, where building can take an order of tens of minutes.
If we could execute cargo build from within cargo-llvm-cov we could reuse dev profile builds for the test execution, saving important time ⌚ and CPU (think greener 🍃!).
I already tried using caching steps for our target folder in our pipeline, but even for that, we require twice the storage to host build dev and cargo llvm-cov test caches.
Solution
A solution for this, would make the following call valid:
cargo llvm-cov build
All arguments for cargo build should be available and pass it down to cargo build.
Extra
This solution may also work for complex integration tests, which can make use of the binaries generated in special environments (for instance, a micro-services test deployment).
Request This is a request to consider calling
cargo build
from withincargo-llvm-cov
.Reasoning CI systems are mostly building
dev
profile and running tests with coverage. Ascargo-llvm-cov
introduces special setup for tests,dev
builds intermediate and final objects cannot be resused by the pipeline, implying recompilation of the whole codebase. This waste time and resources. This is more critical on CI systems, where building can take an order of tens of minutes.If we could execute
cargo build
from withincargo-llvm-cov
we could reusedev
profile builds for thetest
execution, saving important time ⌚ and CPU (think greener 🍃!).I already tried using caching steps for our
target
folder in our pipeline, but even for that, we require twice the storage to hostbuild dev
andcargo llvm-cov test
caches.Solution A solution for this, would make the following call valid:
All arguments for
cargo build
should be available and pass it down tocargo build
.Extra This solution may also work for complex integration tests, which can make use of the binaries generated in special environments (for instance, a micro-services test deployment).