feat(repo-required-gate): add first-class Go lane (go-ci.yml + stack=go/polyglot)#52
Merged
Conversation
Add 'go' to valid stacks and a runGoCi output. stack=go routes code/package changes to the Go lane; polyglot gains a third language via go-paths, with the lane label listing active languages (e.g. node+python+go). Push and forced-full events include Go. 12 new classifier tests; full suite 116 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New reusable go-ci.yml discovers tracked go.mod roots via git ls-files (skipping gitignored build artifacts and generated dirs) and runs go build/vet/test per module, with optional setup/generate commands and a dirty-tree drift check. repo-required-gate.yml gains go-* inputs, a run-go-ci detect output, a go-ci job, and decision wiring. Adds standalone examples/go-ci.yml, a node+go polyglot example, a README row, and a changelog fragment. Closes #51 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 7, 2026
ArchonVII
added a commit
that referenced
this pull request
Jun 7, 2026
go-ci.yml shipped (#52) with no execution test -- self-test.yml only runs vitest over the classifier. This adds self-test-go.yml, which calls go-ci.yml via a local (./) reusable ref against fixture modules under test/fixtures/go/, proving discovery, go build/vet/test, and exclude-modules actually run in Actions. The excluded fixture is intentionally non-compiling and passed via exclude-modules, so a green run self-validates that exclusion skips it (a regression would build it and fail loudly). cache:false because the dependency-less fixtures have no go.sum. Refs #55 Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a first-class Go lane to the shared CI surface.
repo-required-gatesupported node/python/minimal/polyglot but had no way to build, vet, or test Go — a real consumer (ArchonVII/archon, 10 tracked Go modules) routed.gochanges tolanguage-ciwhile onlynode-ciran (a false-green required check).go-ci.yml— discovers every trackedgo.modviagit ls-files(deliberately NOT a filesystemfind: that catches gitignored build artifacts likedist/<scaffold>/go.modand recurses into generated dirs whose conflicting package decls breakgo build ./...). Runsgo build/go vet/go testper module. Optionalsetup-command,generate-command+verify-generated(dirty-tree drift check for committed codegen),exclude-modules,cgo-enabled, and build/test arg passthrough.stack: go+runGoCi;polyglotgeneralized to a third language viago-paths; lane label lists active languages (e.g.code (polyglot: node+go)).go-*inputs,run-go-cidetect output, ago-cijob, and decision wiring.examples/go-ci.yml, a node+go polyglot example, a README row, and a changelog fragment.Concrete Go support first; the
languages: [<lang>]list-sugar + resolver refinement is deferred to a follow-up to keep this reviewable.Verification
Verification Notes
npx vitest run→ 116 passed (6 files), including 12 new Go cases (stack=go, polyglot node+go, node+python+go label ordering, push + forced-full events, all-empty-paths guardrail).actionlint go-ci.yml repo-required-gate.yml examples/go-ci.yml examples/repo-required-gate.yml→ exit 0.go-ci.yml's discovery +exclude-modulesshell againstC:\GitHub\archon: found all 10 tracked modules (root +tsunami+ 8tsunami/demo/*);exclude-modules: tsunami/demo/correctly kept root + tsunami and skipped the 8 demos. (root + tsunami alsogo build/go vetclean on archon main.)go-ci.yml'srun:blocks carry# shellcheck disable=SC2086for the two intentional word-split arg expansions.Docs / Changelog
.changelog/unreleased/51-go-ci-lane.mdadded; README Generic-CI table updated; examples added/updated.Linked Issue
Closes #51
Release note
Consumers (e.g. archon) can use the Go lane only after
v1is retagged (git tag -f v1 && git push -f origin v1) post-merge.