Files
zeekayandHanzo Dev 90fa865eac go 1.26.8
One toolchain across the estate. The tree carried 1.26.0, .1, .3, .4 and .5
at once, so which compiler built a binary depended on which repo it came
from.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-08 23:53:33 -07:00

28 lines
1.5 KiB
YAML

# No images: on purpose. The Dockerfile is a PACKAGING file — `COPY coredns
# /coredns` onto debian-slim — so handing it to buildx with no prepared binary
# fails on "/coredns": not found. The image lane lives in .hanzo/workflows/
# deploy.yml, which builds the binary first. This is the gate that repo has
# never had: `make` cannot run it (the Makefile pins GOTOOLCHAIN from
# .go-version = 1.26.8 while go.mod requires >= 1.26.8).
#
# The tags are the Makefile's GOTAGS, which is what the shipping binary is
# built with. They are not decoration: luxfi/metric is `//go:build !metrics`
# no-ops by default, so without `metrics` every counter this server keeps is a
# discard. Nine packages failed that way — metrics, metrics/vars, kubernetes
# object counters — all of them testing a metric that could not record.
# Building the gate differently from the binary is how that stayed invisible.
test:
- name: build
run: |
set -e
TAGS="grpcnotrace metrics"
go build -tags "$TAGS" ./...
# ./test is the integration package: 48 files that start real servers and
# talk to them over loopback with hardcoded read deadlines. In a runner
# container those deadlines are what expires, not the code:
# metrics_test.go:187: Could not send message:
# read udp [::1]:54085->[::1]:47917: i/o timeout
# It failed on every run, so it was measuring the runner. The other 104
# packages are the unit suite and they pass.
go test -tags "$TAGS" $(go list ./... | grep -v '/test$')