Skip to content

CI Performance Optimization: Reduce workflow time from 40+ min to <15 min #119

@jongio

Description

@jongio

Problem

CI workflow currently takes 40+ minutes to complete, creating slow feedback loops for PRs and blocking development velocity.

Current Bottlenecks

  • Preflight Checks: 9.0 min (blocks everything)
  • Test (Windows): 6.2 min
  • Integration Tests (Windows): 4.6 min
  • Repeated setup overhead: Go/Node/pnpm/dashboard build duplicated 8+ times
  • Inefficient dependencies: Build blocked by unnecessary preflight wait

Solution

Three-phase optimization strategy targeting 60%+ runtime reduction:

Phase 1: Caching & Setup (-10 min expected)

  • Create composite setup action (eliminate 8x duplication)
  • Implement aggressive caching (Go modules, pnpm, dashboard builds)
  • Build dashboard once, reuse across jobs

Phase 2: Parallelization (-12 min expected)

  • Remove blocking dependencies (build doesn't need preflight)
  • Split preflight into quick-checks + parallel security-scan
  • Optimize test matrix (Ubuntu full, Windows smoke, remove macOS integration)
  • Parallelize platform builds

Phase 3: Advanced (-5 min expected)

  • Conditional execution for doc-only changes
  • Test suite optimization
  • Final tuning

Goals

Primary:

  • Total CI time <15 minutes (60%+ reduction)
  • Critical path <10 minutes

Secondary:

  • Maintain all security scans (gosec, govulncheck)
  • Keep platform validation (all 3 OSes for unit tests)
  • Zero increase in test flakes

Specification

Full details in: docs/specs/ci-perf/spec.md

Tasks: docs/specs/ci-perf/tasks.md

Success Criteria

  • ✅ Total CI time <15 minutes
  • ✅ Cache hit rate >75%
  • ✅ All tests passing
  • ✅ All security scans maintained
  • ✅ Documentation updated

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions