-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Caching kcov #238
Comments
cargo make will only install kcov if its not available or if too old version. |
I agree it isn't simple. But it isn't travis-specific. The only requirement from the CI is to be able to cache "something" between builds. If There is a specific way to do this in travis, but that's not something That said, it is a fair decision to not support caching at all, or caching of |
FWIW, I implemented this in scmf: https://github.com/orenbenkiki/scmf/blob/master/install_kcov.sh |
that's great. from quick look, it looks like only the unzipped sources are cached, not the compiled binary. right? so you do compile it each time, right? |
Actually all the build files are cached in the build directory. Re-running |
I'm using CircleCI and would love to be able to cache |
i could enable you to decide where to install kcov (see #98) which then you could put in custom location and cache that location in your CI build. |
Yes, that would solve the problem, at least for me. TravisCI allows specifying which (not-under-current-build) directories are cached, so installing KCOV using something like Thanks! |
going to solve it via #98 and this one would be a documentation only basically. |
@orenbenkiki @emschwartz if you could please install cargo-make from master and verify its working good for you? |
I tried this on my development PC and it seems to work fine. I didn't try in on Travis but it "should" work the same way... |
thanks |
enabled by sagiegurari/cargo-make#238
I'm working on maximizing caching in Travis.
I see that when
kcov
is build locally it is placed in a local.build
version. This means it is rebuilt again for every project (and afterclean
).I'm caching
$HOME/.cache
on Travis, (which covers$HOME/.cache/cargo-make
). Ifkcov
was cached there, it would have been reused between builds.The scheme might be something like this:
kcov
.$HOME/.cache/cargo-make/kcov/...
$HOME/.cache/cargo-make/kcov.$NEW_UNIQUE/...
ln -sf $HOME/.cache/cargo-make/kcov.$NEW_UNIQUE $HOME/.cache/cargo-make/kcov
(this is atomic and doesn't have a time window where$HOME/.cache/cargo-make/kcov
doesn't exist).for OLD_KCOV in $HOME/.cache/cargo-make/kcov.*; do test $OLD_KCOV = $HOME/.cache/cargo-make/kcov.$NEW_UNIQUE || rm -rf $OLD_KCOV; done
$HOME/.cache/cargo-make/kcov/...
which should work now (and be reused later).The text was updated successfully, but these errors were encountered: