2 Commits
Author SHA1 Message Date
Justin Tahara 2e6af4ae72 ci(integration): cache uv downloads in the integration shards (#16392)
## 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)
2026-10-21 21:47:49 +00:00
Jamison LahmanandClaude Opus 5 54e417c882 chore(ci): stop generating the OpenAPI client for tests (#14125)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 20:47:11 +00:00