Skip to content

Conversation

@AlexanderPortland
Copy link
Contributor

Adds a simple cache of the ~/.cargo/registry directory and Kani's target directory to reduce compilation times of our dependencies in CI. This also caches the ~/.rustup directory to avoid having to re-download toolchains and re-compile the standard library every CI run. Caches are shared between workflows that compile Kani in the same way (e.g. between the benchcomp-tests & perf jobs since they both compile in release mode).

Based on testing on my local fork, this change seems to make a minor, but not insignificant impact on runtimes. Although lost in the noise on longer jobs, llbc-regression & benchcomp-tests got noticeably faster, as did the compiler benchmarking workflows which have to compile Kani for each commit they are comparing.

Test runs:
General Kani CI workflow: before | after
Compiler bench workflow: before | after

Resolves #4153

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@AlexanderPortland AlexanderPortland requested a review from a team as a code owner June 26, 2025 16:17
Copy link
Member

@tautschnig tautschnig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's a good start, although we might want to figure out what else we could save time on (by caching).

@tautschnig tautschnig added this pull request to the merge queue Jun 27, 2025
Merged via the queue into model-checking:main with commit ada8ed3 Jun 27, 2025
27 checks passed
@AlexanderPortland AlexanderPortland deleted the caching-ci branch June 27, 2025 17:33
github-merge-queue bot pushed a commit that referenced this pull request Jul 3, 2025
Auto generated release notes:

## What's Changed
* Edit quantifiers' documentation. by @thanhnguyen-aws in
#4142
* Fix the bug of using multiple hidden variables for the prev of the
same Expr by @thanhnguyen-aws in
#4150
* Remove `assess` subcommand by @carolynzech in
#4111
* Optimize goto binary exporting in `cprover_bindings` by
@AlexanderPortland in #4148
* Add the option to generate performance flamegraphs by
@AlexanderPortland in #4138
* Fix the bug: Static union values can panic Kani by @thanhnguyen-aws in
#4112
* Update toolchain to 2025-06-13 by @carolynzech in
#4152
* Automatic cargo update to 2025-06-16 by @github-actions in
#4156
* Major-version update cargo dependencies by @tautschnig in
#4158
* Upgrade Rust toolchain to 2025-06-16 by @tautschnig in
#4157
* Bump tests/perf/s2n-quic from `3129ad5` to `c6e694e` by @dependabot in
#4160
* Bump tests/perf/s2n-quic from `c6e694e` to `b1b5bf8` by @dependabot in
#4164
* Upgrade Rust toolchain to 2025-06-17 by @tautschnig in
#4163
* Automatic cargo update to 2025-06-23 by @github-actions in
#4172
* Stub panics during MIR transformation by @AlexanderPortland in
#4169
* Bump tests/perf/s2n-quic from `b1b5bf8` to `32ba87d` by @dependabot in
#4175
* Handle enums with zero or one variants by @zhassan-aws in
#4171
* Introduce compiler timing script & CI job by @AlexanderPortland in
#4154
* Upgrade Rust toolchain to 2025-06-18 by @tautschnig in
#4166
* Cache dependencies for CI jobs by @AlexanderPortland in
#4181
* Autoharness: Derive `Arbitrary` for structs and enums by @carolynzech
in #4167
* Upgrade Rust toolchain to 2025-06-27 by @tautschnig in
#4182
* Include wget in dependencies by @zhassan-aws in
#4183
* Automatic cargo update to 2025-06-30 by @github-actions in
#4186
* Add support for loop assigns in loop contracts by @thanhnguyen-aws in
#4174
* Upgrade toolchain to 06/30 by @carolynzech in
#4188
* Optimize reachability with non-mutating global passes by
@AlexanderPortland in #4177
* Bump tests/perf/s2n-quic from `32ba87d` to `b8f8cca` by @dependabot in
#4190
* Bump ncipollo/release-action from 1.16.0 to 1.18.0 by @dependabot in
#4191
* Upgrade toolchain to 07/02 by @carolynzech in
#4195
* Automatic Derivation Fixes by @carolynzech in
#4194


**Full Changelog**:
kani-0.63.0...kani-0.64.0

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
tautschnig added a commit to tautschnig/kani that referenced this pull request Sep 22, 2025
This reverts commit ada8ed3: caching
.rustup means we just keep piling up toolchains. We already have 6 GB as
cache size, and will eventually just hit the 10 GB limit and not be
caching anything anymore.

We could revisit caching to build something more effective, but also
possible effects of caching are somewhat negligible anyway.
github-merge-queue bot pushed a commit that referenced this pull request Sep 22, 2025
This reverts commit ada8ed3: caching
.rustup means we just keep piling up toolchains. We already have 6 GB as
cache size, and will eventually just hit the 10 GB limit and not be
caching anything anymore.

We could revisit caching to build something more effective, but also
possible effects of caching are somewhat negligible anyway.

By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
github-merge-queue bot pushed a commit that referenced this pull request Nov 6, 2025
Raw release notes:
```
## What's Changed
* Automatic toolchain upgrade to nightly-2025-08-07 by @github-actions[bot] in #4278
* Add loop invariant support for `while let` loop  by @thanhnguyen-aws in #4279
* Automatic toolchain upgrade to nightly-2025-08-08 by @github-actions[bot] in #4281
* Automatic toolchain upgrade to nightly-2025-08-09 by @github-actions[bot] in #4283
* Automatic cargo update to 2025-08-11 by @github-actions[bot] in #4285
* Bump tests/perf/s2n-quic from `8f510f0` to `c64faf9` by @dependabot[bot] in #4288
* Bump actions/checkout from 4 to 5 by @dependabot[bot] in #4286
* Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #4287
* Upgrade toolchain to 2025-08-10 by @carolynzech in #4289
* Automatic toolchain upgrade to nightly-2025-08-11 by @github-actions[bot] in #4290
* Automatic toolchain upgrade to nightly-2025-08-12 by @github-actions[bot] in #4292
* Update README by @carolynzech in #4291
* Automatic toolchain upgrade to nightly-2025-08-13 by @github-actions[bot] in #4297
* [Breaking Change] Fail if stub verified doesn't have a contract harness by @carolynzech in #4295
* Kani Book Documentation Improvements by @carolynzech in #4296
* Automatic toolchain upgrade to nightly-2025-08-14 by @github-actions[bot] in #4298
* Automatic toolchain upgrade to nightly-2025-08-15 by @github-actions[bot] in #4299
* Automatic toolchain upgrade to nightly-2025-08-16 by @github-actions[bot] in #4300
* Automatic cargo update to 2025-08-18 by @github-actions[bot] in #4302
* Upgrade Rust toolchain to 2025-08-18 by @tautschnig in #4304
* Automatic toolchain upgrade to nightly-2025-08-19 by @github-actions[bot] in #4307
* Bump tests/perf/s2n-quic from `c64faf9` to `ff81604` by @dependabot[bot] in #4306
* Automatic toolchain upgrade to nightly-2025-08-20 by @github-actions[bot] in #4309
* Share body cache between harnesses within a codegen unit by @AlexanderPortland in #4276
* Add loop-contracts support for `for` loop by @thanhnguyen-aws in #4143
* RFC: Partitioned proofs by @AlexanderPortland in #4228
* Update toolchain to 08-25-2025 by @thanhnguyen-aws in #4316
* Automatic cargo update to 2025-08-25 by @github-actions[bot] in #4315
* Automatic toolchain upgrade to nightly-2025-08-26 by @github-actions[bot] in #4317
* Bump tests/perf/s2n-quic from `ff81604` to `fa30e8a` by @dependabot[bot] in #4318
* Automatic toolchain upgrade to nightly-2025-08-27 by @github-actions[bot] in #4319
* Handle const generics in stubbing code by @zhassan-aws in #4323
* Automatic toolchain upgrade to nightly-2025-08-28 by @github-actions[bot] in #4324
* Automatic toolchain upgrade to nightly-2025-08-29 by @github-actions[bot] in #4325
* Add import select_autoescape by @zhassan-aws in #4327
* Bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in #4328
* Bump ncipollo/release-action from 1.18.0 to 1.19.1 by @dependabot[bot] in #4331
* Bump tests/perf/s2n-quic from `fa30e8a` to `d2c0794` by @dependabot[bot] in #4332
* Automatic cargo update to 2025-09-01 by @github-actions[bot] in #4330
* Upgrade toolchain to 2025-09-02 by @zhassan-aws in #4333
* Automatic toolchain upgrade to nightly-2025-09-03 by @github-actions[bot] in #4335
* Automatic toolchain upgrade to nightly-2025-09-04 by @github-actions[bot] in #4336
* Automatic toolchain upgrade to nightly-2025-09-05 by @github-actions[bot] in #4337
* Replace fxhash with rustc-hash by @zhassan-aws in #4341
* Fix LLBC regressions by @zhassan-aws in #4338
* Bump ncipollo/release-action from 1.19.1 to 1.20.0 by @dependabot[bot] in #4344
* Automatic cargo update to 2025-09-08 by @github-actions[bot] in #4342
* Bump tests/perf/s2n-quic from `d2c0794` to `26e2402` by @dependabot[bot] in #4346
* Automatic toolchain upgrade to nightly-2025-09-06 by @github-actions[bot] in #4339
* Combo of small performance changes by @AlexanderPortland in #4314
* Upgrade cargo_metadata dependency by @tautschnig in #4308
* Bump actions/github-script from 7 to 8 by @dependabot[bot] in #4343
* Bump actions/labeler from 5 to 6 by @dependabot[bot] in #4345
* Automatic toolchain upgrade to nightly-2025-09-07 by @github-actions[bot] in #4347
* Workaround sporadic git submodule failure by @tautschnig in #4349
* Implement BoundedArbitrary for boxed slices by @zhassan-aws in #4340
* Automatic toolchain upgrade to nightly-2025-09-08 by @github-actions[bot] in #4350
* Contain CI permissions to avoid global read-write by @tautschnig in #4348
* Automatic toolchain upgrade to nightly-2025-09-09 by @github-actions[bot] in #4352
* Upgrade Rust toolchain to 2025-09-10 by @tautschnig in #4354
* Automatic toolchain upgrade to nightly-2025-09-11 by @github-actions[bot] in #4355
* Automatic toolchain upgrade to nightly-2025-09-12 by @github-actions[bot] in #4356
* Do not run PR/issue-creating workflows in forks by @tautschnig in #4357
* Automatic toolchain upgrade to nightly-2025-09-13 by @github-actions[bot] in #4358
* Automatic toolchain upgrade to nightly-2025-09-14 by @github-actions[bot] in #4359
* Automatic toolchain upgrade to nightly-2025-09-15 by @github-actions[bot] in #4360
* Automatic cargo update to 2025-09-15 by @github-actions[bot] in #4361
* Bump tests/perf/s2n-quic from `26e2402` to `fc9b388` by @dependabot[bot] in #4362
* Automatic toolchain upgrade to nightly-2025-09-16 by @github-actions[bot] in #4363
* Automatic toolchain upgrade to nightly-2025-09-17 by @github-actions[bot] in #4364
* Upgrade Rust toolchain to 2025-09-18 by @tautschnig in #4366
* Autoharness: use SHA-1 to produce codegen unit file names by @tautschnig in #4370
* Upgrade Rust toolchain to 2025-09-19 by @tautschnig in #4369
* Automatic toolchain upgrade to nightly-2025-09-20 by @github-actions[bot] in #4371
* Automatic toolchain upgrade to nightly-2025-09-21 by @github-actions[bot] in #4372
* Update attributes.md by @0xsecaas in #4376
* Bump tests/perf/s2n-quic from `fc9b388` to `b131854` by @dependabot[bot] in #4377
* Automatic toolchain upgrade to nightly-2025-09-22 by @github-actions[bot] in #4373
* Automatic cargo update to 2025-09-22 by @github-actions[bot] in #4374
* Revert "Cache dependencies for CI jobs (#4181)" by @tautschnig in #4375
* Automatic toolchain upgrade to nightly-2025-09-23 by @github-actions[bot] in #4378
* Automatic toolchain upgrade to nightly-2025-09-24 by @github-actions[bot] in #4379
* Automatic toolchain upgrade to nightly-2025-09-25 by @github-actions[bot] in #4380
* Automatic toolchain upgrade to nightly-2025-09-26 by @github-actions[bot] in #4381
* Automatic toolchain upgrade to nightly-2025-09-27 by @github-actions[bot] in #4382
* Automatic toolchain upgrade to nightly-2025-09-28 by @github-actions[bot] in #4383
* Automatic toolchain upgrade to nightly-2025-09-29 by @github-actions[bot] in #4384
* Automatic cargo update to 2025-09-29 by @github-actions[bot] in #4385
* Bump tests/perf/s2n-quic from `b131854` to `1cca93b` by @dependabot[bot] in #4386
* Upgrade Rust toolchain to 2025-09-30 by @tautschnig in #4388
* Automatic toolchain upgrade to nightly-2025-10-01 by @github-actions[bot] in #4389
* Automatic toolchain upgrade to nightly-2025-10-02 by @github-actions[bot] in #4391
* Upgrade Rust toolchain to 2025-10-03 by @tautschnig in #4393
* Complete CI permissions limiting by @tautschnig in #4394
* Automatic toolchain upgrade to nightly-2025-10-04 by @github-actions[bot] in #4395
* Automatic toolchain upgrade to nightly-2025-10-05 by @github-actions[bot] in #4396
* Automatic cargo update to 2025-10-06 by @github-actions[bot] in #4398
* Automatic toolchain upgrade to nightly-2025-10-06 by @github-actions[bot] in #4397
* Automatic toolchain upgrade to nightly-2025-10-07 by @github-actions[bot] in #4401
* Automatic toolchain upgrade to nightly-2025-10-08 by @github-actions[bot] in #4402
* Automatic toolchain upgrade to nightly-2025-10-09 by @github-actions[bot] in #4403
* Automatic toolchain upgrade to nightly-2025-10-10 by @github-actions[bot] in #4404
* Automatic toolchain upgrade to nightly-2025-10-11 by @github-actions[bot] in #4405
* Bump tests/perf/s2n-quic from `1cca93b` to `995f37b` by @dependabot[bot] in #4400
* Automatic cargo update to 2025-10-13 by @github-actions[bot] in #4409
* Upgrade Rust toolchain to 2025-10-12 by @tautschnig in #4407
* Bump tests/perf/s2n-quic from `995f37b` to `5240fd6` by @dependabot[bot] in #4410
* Automatic toolchain upgrade to nightly-2025-10-13 by @github-actions[bot] in #4411
* Automatic toolchain upgrade to nightly-2025-10-14 by @github-actions[bot] in #4412
* Automatic toolchain upgrade to nightly-2025-10-15 by @github-actions[bot] in #4414
* Automatic toolchain upgrade to nightly-2025-10-16 by @github-actions[bot] in #4415
* Automatic toolchain upgrade to nightly-2025-10-17 by @github-actions[bot] in #4416
* Automatic cargo update to 2025-10-20 by @github-actions[bot] in #4417
* Automatic toolchain upgrade to nightly-2025-10-18 by @github-actions[bot] in #4418
* Bump tests/perf/s2n-quic from `5240fd6` to `73c9278` by @dependabot[bot] in #4419
* Automatic toolchain upgrade to nightly-2025-10-19 by @github-actions[bot] in #4420
* Automatic toolchain upgrade to nightly-2025-10-20 by @github-actions[bot] in #4421
* Automatic toolchain upgrade to nightly-2025-10-21 by @github-actions[bot] in #4422
* Automatic toolchain upgrade to nightly-2025-10-22 by @github-actions[bot] in #4423
* Automatic toolchain upgrade to nightly-2025-10-23 by @github-actions[bot] in #4424
* Automatic cargo update to 2025-10-27 by @github-actions[bot] in #4428
* Bump tests/perf/s2n-quic from `73c9278` to `42fe409` by @dependabot[bot] in #4429
* Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #4430
* Upgrade Rust toolchain to 2025-10-24 by @tautschnig in #4426
* Automatic toolchain upgrade to nightly-2025-10-25 by @github-actions[bot] in #4431
* Automatic toolchain upgrade to nightly-2025-10-26 by @github-actions[bot] in #4432
* Automatic toolchain upgrade to nightly-2025-10-27 by @github-actions[bot] in #4433
* Automatic toolchain upgrade to nightly-2025-10-28 by @github-actions[bot] in #4434
* Automatic toolchain upgrade to nightly-2025-10-29 by @github-actions[bot] in #4435
* Automatic toolchain upgrade to nightly-2025-10-30 by @github-actions[bot] in #4436
* Automatic toolchain upgrade to nightly-2025-10-31 by @github-actions[bot] in #4437
* Automatic cargo update to 2025-11-03 by @github-actions[bot] in #4441
* Upgrade Rust toolchain to 2025-11-03 by @tautschnig in #4440
* Bump tests/perf/s2n-quic from `42fe409` to `e726f08` by @dependabot[bot] in #4443
* Switch macos-13 CI jobs to macos-15-intel by @tautschnig in #4442
* Automatic toolchain upgrade to nightly-2025-11-04 by @github-actions[bot] in #4444
* Incrementally update charon submodule with LLBC backend adaptations by @tautschnig in #4445
* Automatic toolchain upgrade to nightly-2025-11-05 by @github-actions[bot] in #4446
* Major-version update cargo dependencies by @tautschnig in #4447

## New Contributors
* @0xsecaas made their first contribution in #4376

**Full Changelog**: kani-0.65.0...kani-0.66.0
```


By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cache Dependencies for CI

2 participants