fe24d7dd
ci: run the test suites against a real postgres
Not one of this repository's 28 test files had ever run on the builder: the manifest went from cache_restore straight to abuild, and options="!check" meant abuild did not run them either. Every apk published so far was built from code CI compiled and never executed. A postgres task brings up a database in the VM and exports DOLTSRHT_TEST_PG; a test task runs make vet and make test. Measured on this tree, db/ has 10 tests and 9 of them gate on that DSN, so without it the whole persistence layer is skipped and the build is green regardless; no other package needs it. Hence the guard: an empty DSN fails the task loudly rather than skipping every database suite. That guard is what makes !check an honest claim about where the suites ran instead of a licence to ship untested code, and the APKBUILD now says so. make vet and make test rather than bare go commands, because the Makefile is where -tags gms_pure_go and CGO_ENABLED=0 are named — without the tag either command pulls go-icu-regex in and wants ICU headers the builder lacks. remoteapi/integration_test.go prefers DOLTSRHT_TEST_PG and only falls back to docker run when it is empty, so it never reaches for a daemon the builder does not have. It is moot either way: the file is behind //go:build integration and go test ./... does not compile it, as with spike. No gofmt gate: web/beads.go and four test files are gofmt-dirty on master, so one would be red on arrival.
Eugene Blikh <bigbes@gmail.com> — 2026-08-08 22:36:09 UTC
Commit fe24d7dd96f01d86cef22f387c82ceaa16af46e4 —
view raw patch
Parent(s):
ec98df31
| File | Status | + | − |
|---|---|---|---|
.build.yml
|
M | +38 | |
APKBUILD
|
M | +8 | -1 |
docs/ci.md
|
M | +77 | -5 |