-
Notifications
You must be signed in to change notification settings - Fork 257
Conversation
* Disable incremental compile
d4fb2d4
to
5eb275f
Compare
I also disabled incremental compilation which makes sense with the no-cache approach and should be a little faster. |
Interesting - from my own experiments with Travis I noticed that caching immediate artifacts shaves off 5min of build time while downloading the cache takes no more than 2 minutes, ultimately offering a speedup. However Travis Windows runs are noticeably slower and cutting max time from 41 min (or even failing to cache) to 26 min on every run might be more beneficial in the end. |
Travis caching does have a better best-case than no caching, at least on Linux. However, it has even longer worst-case build time as unpacking and packing the cache is just not very fast. So the argument is that for nightly builds you see too much of the bad for the good to be worth it. Once you throw in the current travis-windows cache behaviour it's not just slowing us down, it's tripping us up. |
Right, it makes sense to amortize the cost and land this. Thanks for looking into that! |
Update cargo, rls, miri Update cargo, rls, miri Added `rustc-workspace-hack` to miri so that it shares the same features for serde as other tools. cc @alexcrichton ## cargo 25 commits in 2cf1f5dda2f7ed84e94c4d32f643e0f1f15352f0..0d1f1bbeabd5b43a7f3ecfa16540af8e76d5efb4 2018-12-11 03:44:04 +0000 to 2018-12-19 14:45:14 +0000 - Remove Stale bot's configuration (rust-lang/cargo#6463) - Add labels to issue templates (rust-lang/cargo#6464) - Fix new man page links. (rust-lang/cargo#6459) - Fix metabuild compile errors with --message-format=json. (rust-lang/cargo#6432) - Support alt-registry names in [patch] table. (rust-lang/cargo#6456) - Update the rustup URL (rust-lang/cargo#6455) - New man pages. (rust-lang/cargo#6405) - Reify the DepFingerprint type (rust-lang/cargo#6451) - Extract Fingerprint::new (rust-lang/cargo#6449) - Upgrade the metabuild to Rust 2018 (rust-lang/cargo#6448) - Make edition comparing code consistent (rust-lang/cargo#6450) - Document `name` and `authors` in [package] (rust-lang/cargo#6447) - Travis: only use mdbook 0.1.7. (rust-lang/cargo#6443) - Update git2-curl requirement from 0.8.1 to 0.9.0 (rust-lang/cargo#6439) - Update git2 requirement from 0.7.5 to 0.8.0 (rust-lang/cargo#6438) - Display errors when `cargo fix` fails. (rust-lang/cargo#6419) - cargo fix: fix targets with shared sources. (rust-lang/cargo#6434) - Fix panic-in-panic in tests. (rust-lang/cargo#6431) - More Rust 2018 edition cleanups (rust-lang/cargo#6422) - Cleanup some trait impls for SourceId (rust-lang/cargo#6429) - Remove a nightly check from doc tests (rust-lang/cargo#6427) - Replace CargoError with failure::Error (rust-lang/cargo#6425) - Allow testsuite warnings in dev (rust-lang/cargo#6426) - add `--dry-run` option to cargo update (rust-lang/cargo#6371) - Migrate to some Rust 2018 idioms (rust-lang/cargo#6416) ## rls 16 commits in bd5b899afb05e14d33e210ede3da241ca1ca088f..6f5e4bba7b1586fca6e0ea7724cadb5683b2f308 2018-12-10 08:53:00 +0100 to 2018-12-21 17:11:08 +0100 - Update jsonrpc-core (rust-lang/rls#1206) - Use `home_dir` from `home` crate (rust-lang/rls#1207) - Update cargo. (rust-lang/rls#1204) - Fix deprecated `trim_{left,right}` warnings (rust-lang/rls#1203) - Respect ${CARGO,RUSTUP}_HOME for tooltip relative dirs (rust-lang/rls#1201) - Separate tooltip tests that require Racer fallback (rust-lang/rls#1200) - tests: Don't generate tooltip results in tests/fixtures (rust-lang/rls#1199) - Overhaul fixture handling in tests (rust-lang/rls#1190) - Don't return symbols with empty names (rust-lang/rls#1193) - Don't check AppVeyor CI status for bors - Properly infer full_docs (rust-lang/rls#1192) - Update cargo (rust-lang/rls#1191) - Improve hover test_tooltip tests (rust-lang/rls#1175) - Fix unused warnings (rust-lang/rls#1185) - Workaround rust-lang/rls#703 to prevent obscure failures due to sccache. (rust-lang/rls#1177) - Disable travis cache (rust-lang/rls#1182) ## miri 14 commits in bccadeb..6c2fc6d 2018-12-08 11:07:22 +0100 to 2018-12-26 14:28:25 +0100 - use memory::check_bounds_ptr for offset check (rust-lang/miri#589) - Fix comparing function pointers (rust-lang/miri#587) - fix for infallible allocation (rust-lang/miri#586) - fix test for latest nightly (rust-lang/miri#585) - Treat ref-to-raw cast like a reborrow: do a special kind of retag (rust-lang/miri#572) - Test cargo-miri on Windows (rust-lang/miri#578) - Cargo miri tweaks and test that we can exclude tests (rust-lang/miri#580) - Fix cargo miri test (rust-lang/miri#550) - fix for latest nightly (rust-lang/miri#574) - Add rustc-workspace-hack. (rust-lang/miri#575) - use RUSTC_WRAPPER for the cargo hook (rust-lang/miri#573) - do not auto-detect the targets in the sysroot, instead specify target manually through env var (rust-lang/miri#570) - Cleanup: Avoid repeating signatures, get rid of to_bytes hack (rust-lang/miri#568) - Support building and running with full MIR on foreign architectures, drop support for missing MIR (rust-lang/miri#566)
Travis caching for cargo doesn't really seem to work very well. It noticeably decreases worst-case performance and a nightly project will hit the worst-case fairly often. It seems worse still on windows builds where some have been timing out in the final cache stage after succeeding.
I wondered how bad it would be without any caching.
Cache
No Cache