Epic: CI Execution Time Optimization — Timeouts, Concurrency, and Coverage Artifact Sharing #1678

Open
opened 2026-04-02 23:28:35 +00:00 by freemo · 2 comments
Owner

Metadata

  • Branch: epic/ci-execution-time-optimization
  • Commit Message: feat(ci): optimize CI execution time via timeouts, concurrency groups, and artifact sharing
  • Milestone: v3.8.0
  • Parent Epic: N/A — this is a top-level Epic

Overview

The CI pipeline has several structural gaps that cause unnecessary wall-clock time:

  1. No concurrency groups — when multiple commits are pushed to the same branch in quick succession, all CI runs execute in full, wasting runner capacity on superseded work.
  2. No job-level timeouts — only e2e_tests has timeout-minutes. All other jobs (lint, typecheck, security, quality, unit_tests, integration_tests, coverage, build, docker, helm) can hang indefinitely, blocking shared runners.
  3. Coverage job re-runs all tests — the coverage job calls nox -s coverage_report, which re-executes the full test suite. The unit_tests job already ran the same tests; sharing .coverage artifacts would eliminate this duplication.

This Epic tracks the work to address all three gaps.

Subtasks

  • Add concurrency group to .forgejo/workflows/ci.yml to cancel superseded runs on the same branch (#child-1)
  • Add timeout-minutes to all CI jobs that currently lack one (#child-2)
  • Share .coverage data from unit_tests to coverage job via upload/download artifacts (#child-3)
  • Update features/ci_workflow_validation.feature to assert concurrency, timeout, and artifact steps are present
  • Verify all nox stages pass after changes
  • Confirm coverage ≥ 97%

Definition of Done

  • .forgejo/workflows/ci.yml has a top-level concurrency: block that cancels in-progress runs for the same branch/PR
  • Every job in the CI workflow has an explicit timeout-minutes value
  • The unit_tests job uploads .coverage as an artifact; the coverage job downloads it instead of re-running tests
  • features/ci_workflow_validation.feature is updated to cover the new steps
  • All nox stages pass
  • Coverage >= 97%

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

## Metadata - **Branch**: `epic/ci-execution-time-optimization` - **Commit Message**: `feat(ci): optimize CI execution time via timeouts, concurrency groups, and artifact sharing` - **Milestone**: v3.8.0 - **Parent Epic**: N/A — this is a top-level Epic ## Overview The CI pipeline has several structural gaps that cause unnecessary wall-clock time: 1. **No concurrency groups** — when multiple commits are pushed to the same branch in quick succession, all CI runs execute in full, wasting runner capacity on superseded work. 2. **No job-level timeouts** — only `e2e_tests` has `timeout-minutes`. All other jobs (lint, typecheck, security, quality, unit_tests, integration_tests, coverage, build, docker, helm) can hang indefinitely, blocking shared runners. 3. **Coverage job re-runs all tests** — the `coverage` job calls `nox -s coverage_report`, which re-executes the full test suite. The `unit_tests` job already ran the same tests; sharing `.coverage` artifacts would eliminate this duplication. This Epic tracks the work to address all three gaps. ## Subtasks - [ ] Add `concurrency` group to `.forgejo/workflows/ci.yml` to cancel superseded runs on the same branch (#child-1) - [ ] Add `timeout-minutes` to all CI jobs that currently lack one (#child-2) - [ ] Share `.coverage` data from `unit_tests` to `coverage` job via upload/download artifacts (#child-3) - [ ] Update `features/ci_workflow_validation.feature` to assert concurrency, timeout, and artifact steps are present - [ ] Verify all nox stages pass after changes - [ ] Confirm coverage ≥ 97% ## Definition of Done - [ ] `.forgejo/workflows/ci.yml` has a top-level `concurrency:` block that cancels in-progress runs for the same branch/PR - [ ] Every job in the CI workflow has an explicit `timeout-minutes` value - [ ] The `unit_tests` job uploads `.coverage` as an artifact; the `coverage` job downloads it instead of re-running tests - [ ] `features/ci_workflow_validation.feature` is updated to cover the new steps - [ ] 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:30:18 +00:00
Author
Owner

⚠️ Epic Orphan Detected: This Epic ("CI Execution Time Optimization — Timeouts, Concurrency, and Coverage Artifact Sharing") does not appear to be linked to any parent Legendary via Forgejo's dependency system.

Based on the epic's scope (CI pipeline optimization, test infrastructure), the most appropriate parent Legendary would be #376 "Legendary: Hardening, Testing & Security".

Please link this Epic to its parent Legendary by adding a dependency: Epic #1678 should block Legendary #376 (i.e., #376 depends on #1678).


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

⚠️ **Epic Orphan Detected**: This Epic ("CI Execution Time Optimization — Timeouts, Concurrency, and Coverage Artifact Sharing") does not appear to be linked to any parent Legendary via Forgejo's dependency system. Based on the epic's scope (CI pipeline optimization, test infrastructure), the most appropriate parent Legendary would be **#376 "Legendary: Hardening, Testing & Security"**. Please link this Epic to its parent Legendary by adding a dependency: Epic #1678 should block Legendary #376 (i.e., #376 depends on #1678). --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
Author
Owner

Dependency link created: Epic #1678 now blocks Legendary #376 ("Hardening, Testing & Security"). This establishes the correct parent-child relationship in Forgejo's dependency system.


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

Dependency link created: Epic #1678 now blocks Legendary #376 ("Hardening, Testing & Security"). This establishes the correct parent-child relationship in Forgejo's dependency system. --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: ca-backlog-groomer
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.

Blocks Depends on
#2488 Cache apt-get packages in CI jobs
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#1678
No description provided.