TEST-INFRA: [ci-pipeline-design] Consolidate uv Cache Key #1535

Closed
opened 2026-04-02 20:45:23 +00:00 by freemo · 9 comments
Owner

Metadata

  • Branch: task/ci-consolidate-uv-cache-key
  • Commit Message: chore(ci): consolidate uv cache key across all workflow jobs
  • Milestone: v3.8.0
  • Parent Epic: (to be linked — see orphan note below)

Description

Currently, each job in the ci.yml workflow uses a unique cache key for the uv cache (e.g., uv-lint-${{ hashFiles('pyproject.toml') }}, uv-typecheck-${{ hashFiles('pyproject.toml') }}). This prevents the cache from being shared between different jobs, even though they use the same dependencies.

We should use a more generic cache key to allow for better cache sharing and potentially faster builds.

Area: CI/CD

Subtasks

  • Update the ci.yml workflow to use a consistent cache key for the uv cache across all jobs. A good key would be uv-${{ hashFiles('pyproject.toml') }}.
  • Ensure that the cache is correctly restored and saved in all jobs.

Definition of Done

  • A single cache key is used for the uv cache.
  • The cache is shared effectively between jobs.
  • The CI pipeline runs successfully with the new caching strategy.
  • All nox stages pass.
  • Coverage >= 97%.

Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

## Metadata - **Branch**: `task/ci-consolidate-uv-cache-key` - **Commit Message**: `chore(ci): consolidate uv cache key across all workflow jobs` - **Milestone**: v3.8.0 - **Parent Epic**: *(to be linked — see orphan note below)* ## Description Currently, each job in the `ci.yml` workflow uses a unique cache key for the `uv` cache (e.g., `uv-lint-${{ hashFiles('pyproject.toml') }}`, `uv-typecheck-${{ hashFiles('pyproject.toml') }}`). This prevents the cache from being shared between different jobs, even though they use the same dependencies. We should use a more generic cache key to allow for better cache sharing and potentially faster builds. **Area**: CI/CD ## Subtasks - [ ] Update the `ci.yml` workflow to use a consistent cache key for the `uv` cache across all jobs. A good key would be `uv-${{ hashFiles('pyproject.toml') }}`. - [ ] Ensure that the cache is correctly restored and saved in all jobs. ## Definition of Done - [ ] A single cache key is used for the `uv` cache. - [ ] The cache is shared effectively between jobs. - [ ] The CI pipeline runs successfully with the new caching strategy. - [ ] All nox stages pass. - [ ] Coverage >= 97%. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo added this to the v3.8.0 milestone 2026-04-02 20:45:39 +00:00
Author
Owner

⚠️ Orphan Issue — Manual Linking Required

This issue was created without a parent Epic. No CI/CD or Test Infrastructure Epic was found in the open issues at the time of creation.

Action Required: A project maintainer must either:

  1. Link this issue to an existing parent Epic by making this issue block that Epic, OR
  2. Create a new CI/CD Infrastructure Epic and link this issue as a child.

Per CONTRIBUTING.md, orphan issues are not permitted. The dependency direction should be:

This issue (#1535) blocks the parent Epic (the parent Epic cannot be complete until this child is done).


Automated by CleverAgents Bot
Supervisor: Test Infrastructure | Agent: ca-new-issue-creator

⚠️ **Orphan Issue — Manual Linking Required** This issue was created without a parent Epic. No CI/CD or Test Infrastructure Epic was found in the open issues at the time of creation. **Action Required**: A project maintainer must either: 1. Link this issue to an existing parent Epic by making this issue **block** that Epic, OR 2. Create a new CI/CD Infrastructure Epic and link this issue as a child. Per `CONTRIBUTING.md`, orphan issues are not permitted. The dependency direction should be: > **This issue (#1535) blocks the parent Epic** (the parent Epic cannot be complete until this child is done). --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: ca-new-issue-creator
freemo self-assigned this 2026-04-02 20:59:00 +00:00
Author
Owner

MoSCoW classification: MoSCoW/Could Have

Rationale: Consolidating the uv cache key is a CI optimization that reduces cache misses and speeds up builds. This is a nice-to-have improvement with no functional impact. Could Have.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: ca-project-owner

MoSCoW classification: **MoSCoW/Could Have** Rationale: Consolidating the uv cache key is a CI optimization that reduces cache misses and speeds up builds. This is a nice-to-have improvement with no functional impact. Could Have. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
Author
Owner

Starting implementation on branch task/ci-consolidate-uv-cache-key.

Analysis: The ci.yml workflow currently uses 6 different cache key prefixes across 8 jobs:

  • uv-lint- (lint job)
  • uv-typecheck- (typecheck job)
  • uv-security- (security job)
  • uv-quality- (quality job)
  • uv-tests- (unit_tests, integration_tests, e2e_tests jobs — already shared)
  • uv-coverage- (coverage job)

The build job has no cache at all. The nightly-quality.yml workflow also has no uv cache.

Plan: Consolidate all cache keys to uv-${{ hashFiles('pyproject.toml') }} with restore-key uv- across all jobs. This allows all jobs to share the same cached uv packages since they all use the same pyproject.toml dependencies.

Difficulty: Low → starting at sonnet tier.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

Starting implementation on branch `task/ci-consolidate-uv-cache-key`. **Analysis**: The `ci.yml` workflow currently uses 6 different cache key prefixes across 8 jobs: - `uv-lint-` (lint job) - `uv-typecheck-` (typecheck job) - `uv-security-` (security job) - `uv-quality-` (quality job) - `uv-tests-` (unit_tests, integration_tests, e2e_tests jobs — already shared) - `uv-coverage-` (coverage job) The `build` job has no cache at all. The `nightly-quality.yml` workflow also has no uv cache. **Plan**: Consolidate all cache keys to `uv-${{ hashFiles('pyproject.toml') }}` with restore-key `uv-` across all jobs. This allows all jobs to share the same cached uv packages since they all use the same `pyproject.toml` dependencies. Difficulty: Low → starting at sonnet tier. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

All subtasks complete. Quality gates passed. Creating PR.

Implementation summary:

  • Subtask 1: Updated ci.yml to use uv-${{ hashFiles('pyproject.toml') }} as the single shared cache key across all 9 jobs (lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, coverage, build). Also added a missing cache step to the build job which had no caching before.
  • Subtask 2: Cache is correctly restored and saved in all jobs. The shared key ensures the first job to run populates the cache and all subsequent jobs benefit from a cache hit. Also added caching to nightly-quality.yml which had no uv cache at all.

Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

All subtasks complete. Quality gates passed. Creating PR. **Implementation summary:** - ✅ Subtask 1: Updated `ci.yml` to use `uv-${{ hashFiles('pyproject.toml') }}` as the single shared cache key across all 9 jobs (lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, coverage, build). Also added a missing cache step to the `build` job which had no caching before. - ✅ Subtask 2: Cache is correctly restored and saved in all jobs. The shared key ensures the first job to run populates the cache and all subsequent jobs benefit from a cache hit. Also added caching to `nightly-quality.yml` which had no uv cache at all. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

PR #1644 created on branch task/ci-consolidate-uv-cache-key. PR review and merge handled by continuous review stream.

🔗 #1644


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

PR #1644 created on branch `task/ci-consolidate-uv-cache-key`. PR review and merge handled by continuous review stream. 🔗 https://git.cleverthis.com/cleveragents/cleveragents-core/pulls/1644 --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

Starting implementation on branch task/ci-consolidate-uv-cache-key.

Resume detected: Branch already existed with implementation commit 99aa459b and PR #1644 already created. Resuming from Phase 4 to complete PR setup.

Implementation summary:

  • Replaced all per-job uv cache key prefixes (uv-lint-, uv-typecheck-, uv-security-, uv-quality-, uv-tests-, uv-coverage-) with a single shared key uv-${{ hashFiles('pyproject.toml') }} across all 8 jobs in .forgejo/workflows/ci.yml
  • Updated restore-keys fallback from per-job prefixes to the generic uv- prefix
  • Added missing uv cache step to the build job (previously had no caching)
  • Added uv caching to .forgejo/workflows/nightly-quality.yml (previously had no cache at all)

All subtasks complete. PR #1644 created and updated with full description.


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

Starting implementation on branch `task/ci-consolidate-uv-cache-key`. **Resume detected**: Branch already existed with implementation commit `99aa459b` and PR #1644 already created. Resuming from Phase 4 to complete PR setup. **Implementation summary**: - Replaced all per-job `uv` cache key prefixes (`uv-lint-`, `uv-typecheck-`, `uv-security-`, `uv-quality-`, `uv-tests-`, `uv-coverage-`) with a single shared key `uv-${{ hashFiles('pyproject.toml') }}` across all 8 jobs in `.forgejo/workflows/ci.yml` - Updated `restore-keys` fallback from per-job prefixes to the generic `uv-` prefix - Added missing `uv` cache step to the `build` job (previously had no caching) - Added `uv` caching to `.forgejo/workflows/nightly-quality.yml` (previously had no cache at all) All subtasks complete. PR #1644 created and updated with full description. --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
Author
Owner

PR #1644 reviewed, approved, and merged.

The uv cache key has been consolidated across all CI workflow jobs. All per-job cache key prefixes have been replaced with a single shared key uv-${{ hashFiles('pyproject.toml') }}, and missing cache steps were added to the build job and nightly-quality.yml.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

PR #1644 reviewed, approved, and merged. The uv cache key has been consolidated across all CI workflow jobs. All per-job cache key prefixes have been replaced with a single shared key `uv-${{ hashFiles('pyproject.toml') }}`, and missing cache steps were added to the `build` job and `nightly-quality.yml`. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Author
Owner

PR #1644 reviewed, approved, and merged.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

PR #1644 reviewed, approved, and merged. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Author
Owner

PR #1644 reviewed, approved, and merged.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

PR #1644 reviewed, approved, and merged. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#1535
No description provided.