mirror of
https://github.com/hanzoai/dns.git
synced 2026-10-30 18:40:55 +00:00
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]>
28 lines
1.5 KiB
YAML
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$')
|