TEST-INFRA: [ci-pipeline-design] Parallelize CI jobs for faster feedback #5395

Open
opened 2026-04-09 06:18:39 +00:00 by HAL9000 · 2 comments
Owner

Metadata

  • Branch: test-infra/ci-pipeline-parallelize-jobs
  • Commit Message: perf(ci): parallelize independent CI jobs to reduce pipeline duration
  • Milestone: (Backlog — see note below)
  • Parent Epic: (Orphan — see note below)

Backlog note: This issue was discovered during autonomous operation
on milestone v3.5.0. It does not block milestone completion and has been
placed in the backlog for human review and future milestone assignment.


Overview

The current CI pipeline in .forgejo/workflows/ci.yml runs several jobs sequentially that could be executed in parallel. This sequential execution increases the total time required for CI checks to complete, leading to slower feedback for developers.

By running independent jobs concurrently, we can significantly reduce the overall pipeline duration.

Proposed Changes

I propose modifying the .forgejo/workflows/ci.yml file to parallelize the following groups of jobs:

  1. Static Analysis Jobs: The lint, typecheck, security, and quality jobs are all independent and can be run in parallel.
  2. Test Jobs: The unit_tests, integration_tests, and e2e_tests jobs are also independent and can be run in parallel.

Implementation Details

The needs keyword in the Forgejo Actions workflow file should be adjusted to reflect these parallel stages. For example, the coverage job should need all the static analysis jobs, and the final status-check job should need all the test jobs.

Duplicate Check

  • Search Queries: parallel, concurrent, jobs
  • Results: 0 issues found.
  • Conclusion: This is not a duplicate issue.

Subtasks

  • Audit .forgejo/workflows/ci.yml to identify all sequential jobs that can be parallelized
  • Restructure needs dependencies so lint, typecheck, security, and quality run in parallel
  • Restructure needs dependencies so unit_tests, integration_tests, and e2e_tests run in parallel
  • Ensure coverage job correctly depends on all required upstream jobs
  • Ensure status-check job correctly depends on all test jobs
  • Validate the updated workflow runs correctly in CI
  • Measure and document the reduction in total pipeline duration

Definition of Done

  • All static analysis jobs (lint, typecheck, security, quality) run in parallel
  • All test jobs (unit_tests, integration_tests, e2e_tests) run in parallel
  • No regressions introduced — all CI jobs still pass
  • Pipeline duration is measurably reduced
  • All nox stages pass
  • Coverage >= 97%

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

## Metadata - **Branch**: `test-infra/ci-pipeline-parallelize-jobs` - **Commit Message**: `perf(ci): parallelize independent CI jobs to reduce pipeline duration` - **Milestone**: *(Backlog — see note below)* - **Parent Epic**: *(Orphan — see note below)* > **Backlog note:** This issue was discovered during autonomous operation > on milestone v3.5.0. It does not block milestone completion and has been > placed in the backlog for human review and future milestone assignment. --- ### Overview The current CI pipeline in `.forgejo/workflows/ci.yml` runs several jobs sequentially that could be executed in parallel. This sequential execution increases the total time required for CI checks to complete, leading to slower feedback for developers. By running independent jobs concurrently, we can significantly reduce the overall pipeline duration. ### Proposed Changes I propose modifying the `.forgejo/workflows/ci.yml` file to parallelize the following groups of jobs: 1. **Static Analysis Jobs**: The `lint`, `typecheck`, `security`, and `quality` jobs are all independent and can be run in parallel. 2. **Test Jobs**: The `unit_tests`, `integration_tests`, and `e2e_tests` jobs are also independent and can be run in parallel. ### Implementation Details The `needs` keyword in the Forgejo Actions workflow file should be adjusted to reflect these parallel stages. For example, the `coverage` job should `need` all the static analysis jobs, and the final `status-check` job should `need` all the test jobs. ### Duplicate Check - **Search Queries**: `parallel`, `concurrent`, `jobs` - **Results**: 0 issues found. - **Conclusion**: This is not a duplicate issue. ## Subtasks - [ ] Audit `.forgejo/workflows/ci.yml` to identify all sequential jobs that can be parallelized - [ ] Restructure `needs` dependencies so `lint`, `typecheck`, `security`, and `quality` run in parallel - [ ] Restructure `needs` dependencies so `unit_tests`, `integration_tests`, and `e2e_tests` run in parallel - [ ] Ensure `coverage` job correctly depends on all required upstream jobs - [ ] Ensure `status-check` job correctly depends on all test jobs - [ ] Validate the updated workflow runs correctly in CI - [ ] Measure and document the reduction in total pipeline duration ## Definition of Done - [ ] All static analysis jobs (`lint`, `typecheck`, `security`, `quality`) run in parallel - [ ] All test jobs (`unit_tests`, `integration_tests`, `e2e_tests`) run in parallel - [ ] No regressions introduced — all CI jobs still pass - [ ] Pipeline duration is measurably reduced - [ ] All nox stages pass - [ ] Coverage >= 97% --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: new-issue-creator
Author
Owner

Label compliance fix applied:

  • Added missing labels to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Author
Owner

⚠️ Orphan Issue — Needs Manual Linking

This issue was created by the test-infra-improver agent and currently has no parent Epic linked. Per CONTRIBUTING.md, orphan issues are not permitted — every issue must be linked to a parent Epic using Forgejo's dependency system (child blocks parent).

Action Required: A human reviewer or the backlog-groomer agent should:

  1. Identify or create an appropriate parent Epic for TEST-INFRA issues (e.g., a "Testing Infrastructure Improvements" Epic)
  2. Link this issue as a child by running:
    curl -X POST "https://git.cleverthis.com/api/v1/repos/cleveragents/cleveragents-core/issues/5395/blocks" \
      -H "Authorization: token <PAT>" \
      -H "Content-Type: application/json" \
      -d '{"owner": "cleveragents", "repo": "cleveragents-core", "index": <PARENT_EPIC_NUMBER>}'
    

Context: This issue was discovered during autonomous test infrastructure analysis (Cycle 1) and placed in the backlog per the Milestone Scope Guard — it does not block any active milestone.


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

⚠️ **Orphan Issue — Needs Manual Linking** This issue was created by the `test-infra-improver` agent and currently has no parent Epic linked. Per CONTRIBUTING.md, orphan issues are not permitted — every issue must be linked to a parent Epic using Forgejo's dependency system (child **blocks** parent). **Action Required:** A human reviewer or the `backlog-groomer` agent should: 1. Identify or create an appropriate parent Epic for TEST-INFRA issues (e.g., a "Testing Infrastructure Improvements" Epic) 2. Link this issue as a child by running: ```bash curl -X POST "https://git.cleverthis.com/api/v1/repos/cleveragents/cleveragents-core/issues/5395/blocks" \ -H "Authorization: token <PAT>" \ -H "Content-Type: application/json" \ -d '{"owner": "cleveragents", "repo": "cleveragents-core", "index": <PARENT_EPIC_NUMBER>}' ``` **Context:** This issue was discovered during autonomous test infrastructure analysis (Cycle 1) and placed in the backlog per the Milestone Scope Guard — it does not block any active milestone. --- **Automated by CleverAgents Bot** Supervisor: Test Infrastructure | Agent: new-issue-creator
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#5395
No description provided.