You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current build-verify.yml CI workflow only compiles binaries — it never runs tests, go vet, or any static analysis. This means bugs ship silently and contributors get no automated feedback on correctness.
Proof from the current open PR queue — every one of these bugs existed in master and CI never caught them:
The motivation: CI should be the first line of defence. Right now it is not.
Description
Add three mandatory quality gates to build-verify.yml that run on every PR and push:
go test ./... — runs the existing unit test suite (currently never executed in CI)
go vet ./... — Go's built-in analyser, catches real bugs like wrong body reads, bad panic arguments, printf mismatches
staticcheck — industry-standard linter, zero config, no false positives
Also add make test and make vet targets to Makefile so contributors can run the same checks locally before pushing.
This is not a breaking change — it only adds new CI steps. If existing tests are currently failing on master,
those failures will need to be fixed as part of this PR.
Implementation ideas
Add before the existing Build Go packages step in .github/workflows/build-verify.yml:
- name: Run unit testsrun: go test ./...
- name: Run go vetrun: go vet ./...
- name: Run staticcheckuses: dominikh/staticcheck-action@v1with:
version: latestinstall-go: false`staticcheck`is preferred over `golangci-lint` — zero config, no false positives, directly catches the bug classes above.Add to `Makefile`:
```makefile.PHONY: testtest: go test ./....PHONY: vetvet: go vet ./...
Reason/Context
The current
build-verify.ymlCI workflow only compiles binaries — it never runs tests, go vet, or any static analysis. This means bugs ship silently and contributors get no automated feedback on correctness.Proof from the current open PR queue — every one of these bugs existed in
masterand CI never caught them:req.Bodyread instead ofresp.BodyinDownloadArtifact→ PR fix typo in DownloadArtifact: was reading req.Body instead of resp.Body #338 (go vetcatches this)panic(err.Error())in connector code → PR fix(connectors): use json.Marshal in CreateTestResult to prevent injection and panics #341, fix: return errors instead of panicking on response parsing in connectors #319 (staticcheckcatches this)TestDeleteContextfails on every clean checkout → PR test: use temporary config file in context delete test #334 (go test ./...catches this)staticcheckcatches this)The motivation: CI should be the first line of defence. Right now it is not.
Description
Add three mandatory quality gates to
build-verify.ymlthat run on every PR and push:go test ./...— runs the existing unit test suite (currently never executed in CI)go vet ./...— Go's built-in analyser, catches real bugs like wrong body reads, bad panic arguments, printf mismatchesstaticcheck— industry-standard linter, zero config, no false positivesAlso add
make testandmake vettargets toMakefileso contributors can run the same checks locally before pushing.This is not a breaking change — it only adds new CI steps. If existing tests are currently failing on master,
those failures will need to be fixed as part of this PR.
Implementation ideas
Add before the existing
Build Go packagesstep in.github/workflows/build-verify.yml: