[AUTO-INF-5] CI: Simplify and consolidate pipeline design #8184

Closed
opened 2026-04-13 04:19:05 +00:00 by HAL9000 · 1 comment
Owner

Metadata

  • Commit Message: chore(ci): simplify and consolidate pipeline design
  • Branch Name: chore/ci-simplify-consolidate-pipeline

Background and Context

The current CI pipeline, defined in .forgejo/workflows/ci.yml, is overly complex and inefficient. It consists of numerous independent jobs, each with redundant setup steps, leading to slow pipeline execution and high maintenance overhead. The heavy reliance on a large and complex noxfile.py adds an unnecessary layer of abstraction, making the CI configuration difficult to understand and modify.

Key Issues:

  • Excessive CI Jobs: The pipeline is fragmented into 14+ jobs, each performing a small part of the overall process.
  • Redundant Setup: Every job repeats the same boilerplate steps for checkout, dependency installation, and caching.
  • Over-reliance on Nox: The CI pipeline is too tightly coupled to the Nox configuration, which is itself overly complex and contains redundant sessions.
  • Inefficient Dependency Management: The status-check job creates a long and unnecessary dependency chain.

Expected Behavior

A simplified, consolidated CI pipeline exists that:

  • Merges lint, typecheck, security, and quality jobs into a single static-analysis job.
  • Merges unit_tests, integration_tests, and coverage jobs into a single testing job.
  • Uses a consolidated linting Nox session combining lint, format, typecheck, security_scan, dead_code, and complexity.
  • Uses a consolidated testing Nox session running unit_tests, integration_tests, and coverage_report.
  • Removes the status-check job in favour of the workflow's overall success/failure state.
  • Retains e2e_tests, build, docker, and helm as separate jobs.

The pipeline is faster, easier to read, and simpler to maintain.

Acceptance Criteria

  • A single static-analysis CI job exists that runs the consolidated linting Nox session
  • A single testing CI job exists that runs the consolidated testing Nox session
  • The linting Nox session combines: lint, format, typecheck, security_scan, dead_code, and complexity
  • The testing Nox session combines: unit_tests, integration_tests, and coverage_report
  • The status-check job is removed from .forgejo/workflows/ci.yml
  • e2e_tests, build, docker, and helm jobs remain as separate jobs
  • No redundant checkout/install/cache boilerplate is duplicated across merged jobs
  • The full CI pipeline passes end-to-end after consolidation
  • noxfile.py is simplified with fewer, more focused sessions

Subtasks

  • Audit .forgejo/workflows/ci.yml and identify all jobs to be merged
  • Audit noxfile.py and identify all sessions to be consolidated
  • Create the consolidated linting Nox session in noxfile.py
  • Create the consolidated testing Nox session in noxfile.py
  • Remove or deprecate the individual sessions now covered by the consolidated ones
  • Rewrite .forgejo/workflows/ci.yml with the new static-analysis and testing jobs
  • Remove the status-check job from the workflow
  • Verify e2e_tests, build, docker, and helm jobs are unaffected
  • Run the full pipeline end-to-end and confirm all checks pass
  • Update developer documentation to reflect the new pipeline structure

Definition of Done

This issue should be closed when:

  • The CI pipeline contains a single static-analysis job and a single testing job replacing the previously fragmented jobs
  • The noxfile.py has consolidated linting and testing sessions with no redundant individual sessions
  • The status-check job no longer exists in the workflow
  • The full CI pipeline passes without errors
  • Developer documentation is updated to reflect the simplified structure

Duplicate Check

  • Searched open issues for keywords: CI, pipeline, nox, simplify, refactor, performance.
  • Searched closed issues for similar proposals.
  • Cross-referenced with other infrastructure areas.
  • No duplicate or overlapping proposals were found.

Automated by CleverAgents Bot
Agent: new-issue-creator

## Metadata - **Commit Message:** `chore(ci): simplify and consolidate pipeline design` - **Branch Name:** `chore/ci-simplify-consolidate-pipeline` ## Background and Context The current CI pipeline, defined in `.forgejo/workflows/ci.yml`, is overly complex and inefficient. It consists of numerous independent jobs, each with redundant setup steps, leading to slow pipeline execution and high maintenance overhead. The heavy reliance on a large and complex `noxfile.py` adds an unnecessary layer of abstraction, making the CI configuration difficult to understand and modify. **Key Issues:** - **Excessive CI Jobs:** The pipeline is fragmented into 14+ jobs, each performing a small part of the overall process. - **Redundant Setup:** Every job repeats the same boilerplate steps for checkout, dependency installation, and caching. - **Over-reliance on Nox:** The CI pipeline is too tightly coupled to the Nox configuration, which is itself overly complex and contains redundant sessions. - **Inefficient Dependency Management:** The `status-check` job creates a long and unnecessary dependency chain. ## Expected Behavior A simplified, consolidated CI pipeline exists that: - Merges `lint`, `typecheck`, `security`, and `quality` jobs into a single `static-analysis` job. - Merges `unit_tests`, `integration_tests`, and `coverage` jobs into a single `testing` job. - Uses a consolidated `linting` Nox session combining `lint`, `format`, `typecheck`, `security_scan`, `dead_code`, and `complexity`. - Uses a consolidated `testing` Nox session running `unit_tests`, `integration_tests`, and `coverage_report`. - Removes the `status-check` job in favour of the workflow's overall success/failure state. - Retains `e2e_tests`, `build`, `docker`, and `helm` as separate jobs. The pipeline is faster, easier to read, and simpler to maintain. ## Acceptance Criteria - [ ] A single `static-analysis` CI job exists that runs the consolidated `linting` Nox session - [ ] A single `testing` CI job exists that runs the consolidated `testing` Nox session - [ ] The `linting` Nox session combines: `lint`, `format`, `typecheck`, `security_scan`, `dead_code`, and `complexity` - [ ] The `testing` Nox session combines: `unit_tests`, `integration_tests`, and `coverage_report` - [ ] The `status-check` job is removed from `.forgejo/workflows/ci.yml` - [ ] `e2e_tests`, `build`, `docker`, and `helm` jobs remain as separate jobs - [ ] No redundant checkout/install/cache boilerplate is duplicated across merged jobs - [ ] The full CI pipeline passes end-to-end after consolidation - [ ] `noxfile.py` is simplified with fewer, more focused sessions ## Subtasks - [ ] Audit `.forgejo/workflows/ci.yml` and identify all jobs to be merged - [ ] Audit `noxfile.py` and identify all sessions to be consolidated - [ ] Create the consolidated `linting` Nox session in `noxfile.py` - [ ] Create the consolidated `testing` Nox session in `noxfile.py` - [ ] Remove or deprecate the individual sessions now covered by the consolidated ones - [ ] Rewrite `.forgejo/workflows/ci.yml` with the new `static-analysis` and `testing` jobs - [ ] Remove the `status-check` job from the workflow - [ ] Verify `e2e_tests`, `build`, `docker`, and `helm` jobs are unaffected - [ ] Run the full pipeline end-to-end and confirm all checks pass - [ ] Update developer documentation to reflect the new pipeline structure ## Definition of Done This issue should be closed when: - The CI pipeline contains a single `static-analysis` job and a single `testing` job replacing the previously fragmented jobs - The `noxfile.py` has consolidated `linting` and `testing` sessions with no redundant individual sessions - The `status-check` job no longer exists in the workflow - The full CI pipeline passes without errors - Developer documentation is updated to reflect the simplified structure ### Duplicate Check - [X] Searched open issues for keywords: `CI`, `pipeline`, `nox`, `simplify`, `refactor`, `performance`. - [X] Searched closed issues for similar proposals. - [X] Cross-referenced with other infrastructure areas. - [X] No duplicate or overlapping proposals were found. --- **Automated by CleverAgents Bot** Agent: new-issue-creator
Owner

superseded by next cycle

superseded by next cycle
freemo 2026-04-13 16:18:48 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
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#8184
No description provided.