mirror of
https://github.com/onyx-dot-app/onyx.git
synced 2026-10-22 03:14:06 -05:00
## Description Integration test shards spend ~23% of their time in "Install Python deps" (`uv sync` inside the devcontainer, with no cache). Across all shards that is ~14% of runs-on vCPU-minutes per day (~61k vCPU-min, ~$1.2k/mo). This PR caches the uv download cache for those shards. - `install-python-deps` mounts a host uv cache dir into the devcontainer (`UV_CACHE_DIR=/uv-cache`, `UV_LINK_MODE=copy`, since uv cannot hardlink across bind mounts). - The cache is stored in the RunsOn S3 cache (`runs-on/cache/restore` / `save`), keyed on OS + arch + `uv.lock`, with a prefix restore key. - Every caller restores it. Only `integration-tests` shard 0 saves, and only on a cache miss (new `save-cache` input). So a `uv.lock` change uploads once, not once per shard. - Both steps skip on GitHub-hosted runners, so the 10 GB GitHub cache is not used. Scope: this PR was first a wider change that also moved small jobs to GitHub-hosted runners. That part is dropped. It undid #15792 (Docker Hub rate limits) and the ECR pull-through cache. Only the cache change is left. ## How Has This Been Tested? - `pre-commit` on the changed files: actionlint, zizmor and check-yaml pass. - CI on this PR: the first run misses the cache and shard 0 saves it. Rerun the integration workflow and compare the "Install Python deps" step time on a warm cache against main. ## Additional Options - [ ] [Optional] Please cherry-pick this PR to the latest release version. 🤖 Generated with [Claude Code](https://claude.com/claude-code)