Problem
.github/workflows/ has image-build, deploy-site, and release workflows, but none runs the test suite. go test is only exercised at release time (goreleaser), so any commit that lands on master between release tags is unverified by CI.
The suite is substantial (~1:1 test:source ratio), which makes the lack of a continuous gate the weak link: a regression can sit on the default branch until the next tag.
Proposal
Add a ci.yml that runs on push and pull_request:
go build ./...
go vet ./...
gofmt -l . (fail on diff)
go test ./...
gnit's .github/workflows/ci.yml is a good shape to mirror (lint + test on push and PR, OS matrix) — the Go equivalents are gofmt/go vet/go test.
Why it matters
The build is dependency-light, so the run is cheap and fast. Gating push/PR keeps master continuously green rather than only-green-at-release, and surfaces regressions at the PR instead of at the next tag.
Problem
.github/workflows/has image-build, deploy-site, and release workflows, but none runs the test suite.go testis only exercised at release time (goreleaser), so any commit that lands onmasterbetween release tags is unverified by CI.The suite is substantial (~1:1 test:source ratio), which makes the lack of a continuous gate the weak link: a regression can sit on the default branch until the next tag.
Proposal
Add a
ci.ymlthat runs onpushandpull_request:go build ./...go vet ./...gofmt -l .(fail on diff)go test ./...gnit's.github/workflows/ci.ymlis a good shape to mirror (lint + test on push and PR, OS matrix) — the Go equivalents aregofmt/go vet/go test.Why it matters
The build is dependency-light, so the run is cheap and fast. Gating push/PR keeps
mastercontinuously green rather than only-green-at-release, and surfaces regressions at the PR instead of at the next tag.