TEST-INFRA: [ci-pipeline-design] Run nox sessions in parallel #1905

Open
opened 2026-04-03 00:11:03 +00:00 by freemo · 1 comment
Owner

Metadata

  • Branch: task/ci-run-nox-sessions-in-parallel
  • Commit Message: chore(ci): run independent nox sessions in parallel to reduce CI build time
  • Milestone: v3.8.0
  • Parent Epic: #1678

Background and Context

The current CI pipeline runs nox sessions sequentially. This is inefficient and leads to longer build times. Sessions such as lint, format, and typecheck are fully independent of one another — they do not share mutable state or conflicting resources — and can safely be executed concurrently.

Running these sessions in parallel will reduce the overall CI wall-clock time and improve developer feedback loops.

Expected Behavior

Independent nox sessions (lint, format, typecheck, and others identified as safe) should be executed in parallel within the CI pipeline, reducing total build time while still correctly aggregating all results (any failure in any session fails the overall pipeline).

Acceptance Criteria

  • The lint, format, and typecheck nox sessions are run in parallel in the CI pipeline.
  • The CI pipeline correctly aggregates results from all parallel sessions (a failure in any session still fails the overall pipeline).
  • The CI build time is measurably reduced compared to the sequential baseline.
  • No race conditions or shared-resource conflicts are introduced by the parallel execution.

Supporting Information

  • Related issues: #1873 (Parallelize default nox sessions), #1888 (Parallelize nox sessions)
  • CI configuration lives in .forgejo/workflows/ci.yml
  • Nox configuration lives in noxfile.py

Subtasks

  • Investigate how to run nox sessions in parallel in the Forgejo CI provider (e.g., using needs: job dependencies and separate jobs, or nox --parallel)
  • Identify all nox sessions that are safe to run in parallel (no shared mutable state or conflicting resources)
  • Update .forgejo/workflows/ci.yml to run lint, format, and typecheck sessions in parallel
  • Ensure the CI pipeline correctly aggregates results from all parallel sessions (any failure = pipeline failure)
  • Update features/ci_workflow_validation.feature to assert the new parallel session structure
  • Verify that parallel execution is working correctly and reducing build time
  • Run nox (all default sessions) locally, fix any errors introduced
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

  • All subtasks above are completed and checked off.
  • The lint, format, and typecheck nox sessions run in parallel in the CI pipeline.
  • The CI build time is measurably reduced compared to the sequential baseline.
  • features/ci_workflow_validation.feature is updated to cover the new parallel session structure.
  • 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-run-nox-sessions-in-parallel` - **Commit Message**: `chore(ci): run independent nox sessions in parallel to reduce CI build time` - **Milestone**: v3.8.0 - **Parent Epic**: #1678 ## Background and Context The current CI pipeline runs nox sessions sequentially. This is inefficient and leads to longer build times. Sessions such as `lint`, `format`, and `typecheck` are fully independent of one another — they do not share mutable state or conflicting resources — and can safely be executed concurrently. Running these sessions in parallel will reduce the overall CI wall-clock time and improve developer feedback loops. ## Expected Behavior Independent nox sessions (`lint`, `format`, `typecheck`, and others identified as safe) should be executed in parallel within the CI pipeline, reducing total build time while still correctly aggregating all results (any failure in any session fails the overall pipeline). ## Acceptance Criteria - The `lint`, `format`, and `typecheck` nox sessions are run in parallel in the CI pipeline. - The CI pipeline correctly aggregates results from all parallel sessions (a failure in any session still fails the overall pipeline). - The CI build time is measurably reduced compared to the sequential baseline. - No race conditions or shared-resource conflicts are introduced by the parallel execution. ## Supporting Information - Related issues: #1873 (Parallelize default nox sessions), #1888 (Parallelize nox sessions) - CI configuration lives in `.forgejo/workflows/ci.yml` - Nox configuration lives in `noxfile.py` ## Subtasks - [ ] Investigate how to run nox sessions in parallel in the Forgejo CI provider (e.g., using `needs:` job dependencies and separate jobs, or `nox --parallel`) - [ ] Identify all nox sessions that are safe to run in parallel (no shared mutable state or conflicting resources) - [ ] Update `.forgejo/workflows/ci.yml` to run `lint`, `format`, and `typecheck` sessions in parallel - [ ] Ensure the CI pipeline correctly aggregates results from all parallel sessions (any failure = pipeline failure) - [ ] Update `features/ci_workflow_validation.feature` to assert the new parallel session structure - [ ] Verify that parallel execution is working correctly and reducing build time - [ ] Run `nox` (all default sessions) locally, fix any errors introduced - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done - [ ] All subtasks above are completed and checked off. - [ ] The `lint`, `format`, and `typecheck` nox sessions run in parallel in the CI pipeline. - [ ] The CI build time is measurably reduced compared to the sequential baseline. - [ ] `features/ci_workflow_validation.feature` is updated to cover the new parallel session structure. - [ ] 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-03 00:11:18 +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#1905
No description provided.