TEST-INFRA: [ci-pipeline-design] Implement Matrix Builds in noxfile.py #1804

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

Metadata

  • Branch: task/ci-matrix-builds-noxfile
  • Commit Message: chore(ci): implement matrix builds in noxfile.py using nox.parametrize
  • Milestone: v3.8.0
  • Parent Epic: #1678

Background and Context

The current noxfile.py defines sessions for different Python versions, but it does not use a matrix build strategy to run the tests against all supported Python versions in parallel. This means CI runs tests sequentially across Python versions, increasing overall build time and reducing feedback speed.

Expected Behavior

The noxfile.py should use nox.parametrize to define a matrix of Python versions and test sessions, and the CI pipeline should be configured to run these matrix builds in parallel, reducing overall build time.

Acceptance Criteria

  • noxfile.py uses nox.parametrize to define a matrix of supported Python versions for test sessions.
  • The CI pipeline configuration runs the matrix build in parallel.
  • Overall build time is measurably reduced compared to the sequential approach.

Supporting Information

  • Parent Epic: #1678 — CI Execution Time Optimization — Timeouts, Concurrency, and Coverage Artifact Sharing
  • Related to CI pipeline design and test infrastructure improvements.

Subtasks

  • Audit current noxfile.py to identify all sessions that should be parameterized by Python version.
  • Use nox.parametrize to create a matrix of Python versions and test sessions in noxfile.py.
  • Update .forgejo/workflows/ci.yml to run the matrix build sessions in parallel.
  • Update features/ci_workflow_validation.feature to assert matrix build steps are present.
  • Tests (Behave): Add/update BDD scenarios covering matrix build configuration.
  • Verify coverage >= 97% via nox -s coverage_report.
  • Run nox (all default sessions), fix any errors.

Definition of Done

  • All subtasks above are completed and checked off.
  • noxfile.py uses nox.parametrize to define a matrix build across all supported Python versions.
  • The CI pipeline runs the matrix build in parallel.
  • The overall build time is reduced.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, 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.
  • 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**: `task/ci-matrix-builds-noxfile` - **Commit Message**: `chore(ci): implement matrix builds in noxfile.py using nox.parametrize` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Background and Context The current `noxfile.py` defines sessions for different Python versions, but it does not use a matrix build strategy to run the tests against all supported Python versions in parallel. This means CI runs tests sequentially across Python versions, increasing overall build time and reducing feedback speed. ## Expected Behavior The `noxfile.py` should use `nox.parametrize` to define a matrix of Python versions and test sessions, and the CI pipeline should be configured to run these matrix builds in parallel, reducing overall build time. ## Acceptance Criteria - `noxfile.py` uses `nox.parametrize` to define a matrix of supported Python versions for test sessions. - The CI pipeline configuration runs the matrix build in parallel. - Overall build time is measurably reduced compared to the sequential approach. ## Supporting Information - Parent Epic: #1678 — CI Execution Time Optimization — Timeouts, Concurrency, and Coverage Artifact Sharing - Related to CI pipeline design and test infrastructure improvements. ## Subtasks - [ ] Audit current `noxfile.py` to identify all sessions that should be parameterized by Python version. - [ ] Use `nox.parametrize` to create a matrix of Python versions and test sessions in `noxfile.py`. - [ ] Update `.forgejo/workflows/ci.yml` to run the matrix build sessions in parallel. - [ ] Update `features/ci_workflow_validation.feature` to assert matrix build steps are present. - [ ] Tests (Behave): Add/update BDD scenarios covering matrix build configuration. - [ ] Verify coverage >= 97% via `nox -s coverage_report`. - [ ] Run `nox` (all default sessions), fix any errors. ## Definition of Done - [ ] All subtasks above are completed and checked off. - [ ] `noxfile.py` uses `nox.parametrize` to define a matrix build across all supported Python versions. - [ ] The CI pipeline runs the matrix build in parallel. - [ ] The overall build time is reduced. - [ ] A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, 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. - [ ] 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:53:30 +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#1804
No description provided.