TEST-INFRA: [ci-pipeline-design] Use custom Docker image for CI jobs #1856

Open
opened 2026-04-02 23:59:26 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: chore/ci-pipeline-design-custom-docker-image
  • Commit Message: chore(ci): use custom Docker image for CI jobs
  • Milestone: v3.8.0
  • Parent Epic: #1678

Background and Context

Currently, each CI job in .forgejo/workflows/ci.yml installs uv and nox separately as part of its setup steps. This repeated installation adds unnecessary overhead to every job's execution time, slowing down the overall CI pipeline.

Current Behavior

Each CI job independently installs uv and nox (and any other required dependencies) during its setup phase. This results in duplicated work across all jobs in every pipeline run.

Expected Behavior

A custom Docker image with all required CI dependencies (uv, nox, and any other tools) pre-installed is used as the base image for all CI jobs. This eliminates the per-job installation overhead and reduces overall CI execution time.

Acceptance Criteria

  • A Dockerfile.ci exists in the repository with all required CI dependencies pre-installed.
  • The custom Docker image is built and pushed to a container registry accessible by the CI pipeline.
  • The .forgejo/workflows/ci.yml file is updated to use the custom Docker image for all applicable jobs.
  • CI pipeline execution time is measurably reduced compared to the baseline (per-job install approach).

Supporting Information

  • Related to the broader CI Execution Time Optimization Epic: #1678
  • The .forgejo/workflows/ci.yml file currently installs uv and nox in each job step.

Subtasks

  • Create Dockerfile.ci with uv, nox, and all required CI dependencies pre-installed
  • Build the custom Docker image and push it to a container registry
  • Update .forgejo/workflows/ci.yml to reference the custom Docker image for all jobs
  • Verify that all CI jobs pass using the new custom image
  • Document the image build and push process (e.g., in README or a docs/ file)
  • Run nox (all default sessions), fix any errors
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly (chore(ci): use custom Docker image for CI jobs), followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly (chore/ci-pipeline-design-custom-docker-image).
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
  • All nox stages pass.
  • Coverage >= 97%.

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

## Metadata - **Branch**: `chore/ci-pipeline-design-custom-docker-image` - **Commit Message**: `chore(ci): use custom Docker image for CI jobs` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Background and Context Currently, each CI job in `.forgejo/workflows/ci.yml` installs `uv` and `nox` separately as part of its setup steps. This repeated installation adds unnecessary overhead to every job's execution time, slowing down the overall CI pipeline. ## Current Behavior Each CI job independently installs `uv` and `nox` (and any other required dependencies) during its setup phase. This results in duplicated work across all jobs in every pipeline run. ## Expected Behavior A custom Docker image with all required CI dependencies (`uv`, `nox`, and any other tools) pre-installed is used as the base image for all CI jobs. This eliminates the per-job installation overhead and reduces overall CI execution time. ## Acceptance Criteria - A `Dockerfile.ci` exists in the repository with all required CI dependencies pre-installed. - The custom Docker image is built and pushed to a container registry accessible by the CI pipeline. - The `.forgejo/workflows/ci.yml` file is updated to use the custom Docker image for all applicable jobs. - CI pipeline execution time is measurably reduced compared to the baseline (per-job install approach). ## Supporting Information - Related to the broader CI Execution Time Optimization Epic: #1678 - The `.forgejo/workflows/ci.yml` file currently installs `uv` and `nox` in each job step. ## Subtasks - [ ] Create `Dockerfile.ci` with `uv`, `nox`, and all required CI dependencies pre-installed - [ ] Build the custom Docker image and push it to a container registry - [ ] Update `.forgejo/workflows/ci.yml` to reference the custom Docker image for all jobs - [ ] Verify that all CI jobs pass using the new custom image - [ ] Document the image build and push process (e.g., in `README` or a `docs/` file) - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly (`chore(ci): use custom Docker image for CI jobs`), followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly (`chore/ci-pipeline-design-custom-docker-image`). - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. - 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 23:59:32 +00:00
Author
Owner

Issue triaged by project owner:

  • State: Verified
  • MoSCoW: MoSCoW/Could Have — CI/test infrastructure improvement.

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

Issue triaged by project owner: - **State**: Verified - **MoSCoW**: MoSCoW/Could Have — CI/test infrastructure improvement. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: ca-project-owner
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.

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