Stamp shared build metadata into banger binaries
Treat `banger`, `bangerd`, and `banger-vsock-agent` as one release by stamping the same version, commit SHA, and build timestamp into every binary through a shared ldflag-backed `internal/buildinfo` package. Add `banger version`, extend daemon ping/status to report the running daemon's build tuple, and keep the guest helper linked to the same build metadata without adding a new public version surface for it. Validate with `GOCACHE=/tmp/banger-gocache go test ./...`, `make build`, `./build/bin/banger version`, and `./build/bin/banger daemon status` after the daemon restarts onto the new binary.
This commit is contained in:
parent
ea2db1e868
commit
f798e1db33
9 changed files with 219 additions and 13 deletions
10
Makefile
10
Makefile
|
|
@ -20,6 +20,10 @@ VOID_VM_NAME ?= void-dev
|
|||
ALPINE_RELEASE ?= 3.23.3
|
||||
ALPINE_IMAGE_NAME ?= alpine
|
||||
ALPINE_VM_NAME ?= alpine-dev
|
||||
VERSION ?= $(shell git describe --tags --exact-match 2>/dev/null || echo dev)
|
||||
COMMIT ?= $(shell git rev-parse --verify HEAD 2>/dev/null || echo unknown)
|
||||
BUILT_AT ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
GO_LDFLAGS := -X banger/internal/buildinfo.Version=$(VERSION) -X banger/internal/buildinfo.Commit=$(COMMIT) -X banger/internal/buildinfo.BuiltAt=$(BUILT_AT)
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
|
|
@ -51,15 +55,15 @@ build: $(BINARIES)
|
|||
|
||||
$(BANGER_BIN): $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(BUILD_BIN_DIR)"
|
||||
$(GO) build -o "$(BANGER_BIN)" ./cmd/banger
|
||||
$(GO) build -ldflags '$(GO_LDFLAGS)' -o "$(BANGER_BIN)" ./cmd/banger
|
||||
|
||||
$(BANGERD_BIN): $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(BUILD_BIN_DIR)"
|
||||
$(GO) build -o "$(BANGERD_BIN)" ./cmd/bangerd
|
||||
$(GO) build -ldflags '$(GO_LDFLAGS)' -o "$(BANGERD_BIN)" ./cmd/bangerd
|
||||
|
||||
$(VSOCK_AGENT_BIN): $(GO_SOURCES) go.mod go.sum
|
||||
mkdir -p "$(BUILD_BIN_DIR)"
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build -o "$(VSOCK_AGENT_BIN)" ./cmd/banger-vsock-agent
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GO) build -ldflags '$(GO_LDFLAGS)' -o "$(VSOCK_AGENT_BIN)" ./cmd/banger-vsock-agent
|
||||
|
||||
test:
|
||||
$(GO) test ./...
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue