[ci] Share Bazel local cache between jobs
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
One major hurdle right now to full Bazel control over various parts of the CI is that it's hard to share the artifacts between the different pipeline stages. This is because Bazel uses its own filesystem within its local cache. We should find a way to propagate this local cache between the different jobs within a single PR run. This would allow us to cache the bitstream build which would be a big win for CI runtime.
One idea is to use a local disk-cache and use Azure's artifacts system to share this disk cache between different jobs and hope that the jobs will hit. This requires some testing. There are challenges with this approach too, though since it can be tricky to merge two different disk caches if a job has two dependencies that both produce a local cache.
Note that remote caching does not solve this problem because the remote cache is not writable from PRs. Ultimately, remote execution will solve this problem elegantly, but implementing that is still far off.
Contributor guide
Assessment
This issue has not been assessed yet.