Skip to content

CI Refactor: Bifurcation and Runner Optimization (Proposals A & B) #318

@Coldaine

Description

@Coldaine

Overview

This issue tracks the completion of a comprehensive CI pipeline refactor designed to optimize resource usage, fix self-hosted runner environment incompatibilities, and increase feedback speed.

Changes Implemented

1. Runner Bifurcation

Workloads have been strictly separated based on hardware requirements:

  • GitHub-Hosted (ubuntu-latest): Now handles all stateless, high-parallelism tasks.

    • lint: cargo fmt and cargo clippy (Parallelized)
    • build: Workspace compilation and cargo doc (Parallelized)
    • security_audit: cargo-deny and cargo-audit
    • unit_tests: Headless tests excluding GUI/Injection crates
    • release / release-plz: Moved off self-hosted as they are stateless
  • Self-Hosted (Fedora/Nobara): Reserved exclusively for hardware-dependent tests.

    • hardware_integration: Real display, audio, and clipboard tests.
    • stt_e2e: Heavy integration tests (Moonshine/Golden Master) requiring GPU/caching.

2. Environment Fixes (Proposal B)

  • Removed Xvfb: The self-hosted runner was identified as running a live KDE Plasma session. The previous xvfb-action (which used apt-get) was causing failures on Fedora and conflicting with the real display. Tests now use the live DISPLAY.
  • Dependency Gating: Hardware tests now explicitly depend on lint and build success to prevent wasting limited self-hosted runner cycles on failing code.

3. Optimizations (Proposal A)

  • Caching & Performance:
    • Enabled sccache (10GB limit) and mold linker on self-hosted.
    • Enabled CARGO_INCREMENTAL=1 for self-hosted.
    • Configured persistent rust-cache keys.
  • Consolidation:
    • Inlined setup-whisper-dependencies to reduce scheduling overhead.
    • Merged runner-test into runner-diagnostic and deleted the redundant file.
    • Deleted validate-workflows (redundant with GitHub's native checks).

Verification

  • Local Smoke Test: scripts/local_ci.sh mirrors the new hosted standard_checks.
  • Self-Hosted Validation: A new step "Validate live display environment" runs before tests to confirm X11/Wayland accessibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions