Skip to content

ci: go-ci.yml has no workflow-level self-test (only the classifier is unit-tested) #55

Description

@ArchonVII

Problem

go-ci.yml (added in #52) ships with no workflow-level execution test. self-test.yml only runs vitest, which covers the classifier (classify-pr.mjs) — it never invokes any reusable lane (node-ci/python-ci/go-ci). So the 200-line go-ci.yml shell (module discovery, go build/go vet/go test, exclude-modules) has never run in Actions. Its discovery logic was validated only by running snippets manually on a local Windows tree; shellcheck wasn't run.

This is the reason the v1 retag can't be de-risked today: there is nowhere for the Go lane to prove itself before a consumer (archon) depends on it via @v1.

Fix

Add self-test-go.yml that calls ./.github/workflows/go-ci.yml (local relative ref → tests the in-PR version) against committed fixture Go modules under test/fixtures/go/:

  • alpha/ — valid module with a passing test → proves discovery + go build + go vet + go test all execute.
  • beta/ — second valid module → proves multi-module discovery.
  • excluded/intentionally non-compiling module passed via exclude-modules → if exclusion regresses, the broken module builds and the job goes red. Self-validating proof that exclude-modules actually skips.

Trigger on changes to go-ci.yml, the fixtures, and the self-test itself.

Why now

Unblocks the v1 retag with real confidence, then archon #145 Phase 3 can consume the Go lane via @v1. Closes the self-test gap #52 shipped with, permanently.

Verification

  • self-test-go job green in CI (the Go lane actually runs).
  • Fixtures verified locally (go build/go vet/go test) before push.

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