From 17be06eb2fc943da94d39efb7c8a191cd57fd8d5 Mon Sep 17 00:00:00 2001 From: Nikhil Date: Tue, 31 Mar 2026 16:17:57 -0700 Subject: [PATCH] fix: report release cli version correctly (#626) --- packages/browseros-agent/apps/cli/Makefile | 11 ++++++++++- packages/browseros-agent/apps/cli/cmd/root.go | 1 + .../browseros-agent/apps/cli/cmd/root_test.go | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/browseros-agent/apps/cli/Makefile b/packages/browseros-agent/apps/cli/Makefile index 16f304163..c99404f58 100644 --- a/packages/browseros-agent/apps/cli/Makefile +++ b/packages/browseros-agent/apps/cli/Makefile @@ -2,13 +2,17 @@ BINARY := browseros-cli SOURCES := $(shell find . -name '*.go') VERSION ?= dev POSTHOG_API_KEY ?= +DIST := dist LDFLAGS := -X main.version=$(VERSION) -X browseros-cli/analytics.posthogAPIKey=$(POSTHOG_API_KEY) +HOST_OS := $(shell go env GOOS) +HOST_ARCH := $(shell go env GOARCH) +HOST_EXT := $(if $(filter windows,$(HOST_OS)),.exe,) +HOST_BINARY = $(DIST)/$(BINARY)_$(HOST_OS)_$(HOST_ARCH)$(HOST_EXT) $(BINARY): $(SOURCES) go build -ldflags "$(LDFLAGS)" -o $(BINARY) . PLATFORMS := darwin/amd64 darwin/arm64 linux/amd64 linux/arm64 windows/amd64 windows/arm64 -DIST := dist .PHONY: install clean vet test release @@ -45,6 +49,11 @@ release: fi; \ mv "$(DIST)/$(BINARY)$$EXT" "$(DIST)/$(BINARY)_$${OS}_$${ARCH}$$EXT"; \ done + @ACTUAL_VERSION=$$($(HOST_BINARY) --version | awk '{print $$3}'); \ + if [ "$$ACTUAL_VERSION" != "$(VERSION)" ]; then \ + echo "Error: expected $(HOST_BINARY) to report version $(VERSION), got $$ACTUAL_VERSION" >&2; \ + exit 1; \ + fi @cd $(DIST) && (command -v sha256sum >/dev/null 2>&1 && sha256sum *.tar.gz *.zip || shasum -a 256 *.tar.gz *.zip) > checksums.txt @echo "=== Built artifacts ===" @ls -lh $(DIST) diff --git a/packages/browseros-agent/apps/cli/cmd/root.go b/packages/browseros-agent/apps/cli/cmd/root.go index cb8507fe7..23aa4b930 100644 --- a/packages/browseros-agent/apps/cli/cmd/root.go +++ b/packages/browseros-agent/apps/cli/cmd/root.go @@ -34,6 +34,7 @@ const automaticUpdateDrainTimeout = 150 * time.Millisecond func SetVersion(v string) { version = v + rootCmd.Version = v } var ( diff --git a/packages/browseros-agent/apps/cli/cmd/root_test.go b/packages/browseros-agent/apps/cli/cmd/root_test.go index 6af33a8da..23d9b5890 100644 --- a/packages/browseros-agent/apps/cli/cmd/root_test.go +++ b/packages/browseros-agent/apps/cli/cmd/root_test.go @@ -5,6 +5,24 @@ import ( "time" ) +func TestSetVersionUpdatesRootCommand(t *testing.T) { + originalVersion := version + originalRootVersion := rootCmd.Version + t.Cleanup(func() { + version = originalVersion + rootCmd.Version = originalRootVersion + }) + + SetVersion("1.2.3") + + if version != "1.2.3" { + t.Fatalf("version = %q, want %q", version, "1.2.3") + } + if rootCmd.Version != "1.2.3" { + t.Fatalf("rootCmd.Version = %q, want %q", rootCmd.Version, "1.2.3") + } +} + func TestCommandName(t *testing.T) { tests := []struct { name string