Skip to content

Consolidate and clarify pre-merge check workflows #622

@ashleyshaw

Description

@ashleyshaw

Summary

Linting and testing are split across multiple workflows (linting.yml, meta.yml, testing.yml) with unclear trigger logic. This creates confusion about when checks run and risks redundant or competing runs.

Problem

  • Triggers scattered across multiple files
  • Unclear precedence or order of execution
  • Potential for redundant runs (e.g., linting runs twice)
  • Concurrency groups not fully specified
  • Documentation doesn't explain workflow topology

Solution

Create unified checks.yml workflow that:

  1. Consolidates pre-merge checks: lint + test + validate
  2. Clear trigger: pull_request and push (develop branch only)
  3. Use concurrency groups to prevent overlapping runs
  4. Keep meta.yml separate (different cadence: post-push, not pre-merge)
  5. Document trigger precedence in comments
  6. Add workflow topology diagram to .github/workflows/README.md

Implementation Details

  • Effort: 1–2 hours
  • Complexity: Low
  • Risk: Low (non-breaking refactor)
  • Related: Current workflows (linting.yml, testing.yml, meta.yml)
  • Dependencies: Existing linting/testing scripts

Acceptance Criteria

  • New checks.yml consolidates lint + test + validate
  • Existing workflows updated or deprecated with clear migration path
  • No regression in check coverage
  • Concurrency groups specified and tested
  • .github/workflows/README.md documents topology
  • CONTRIBUTING.md explains when checks run
  • All tests pass

Reference

See workflow standards audit: .github/reports/audits/workflow-standards-audit-2026-05-31.md

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions