From a7ebc192c8a38cc4e40c705841750026be897532 Mon Sep 17 00:00:00 2001 From: Harry Culpan Date: Sat, 11 Jul 2026 19:33:40 -0400 Subject: [PATCH] Add build version/time stamp to Setup page and awp-cli version command Embeds the git short hash and UTC build timestamp into both binaries via ldflags so it's easy to confirm which build is actually deployed, without needing to hand-maintain a version number. Co-Authored-By: Claude Sonnet 5 --- Makefile | 12 ++++++--- cmd/cli/cmd/version.go | 25 ++++++++++++++++++ cmd/web/templates/setup.templ | 4 ++- cmd/web/templates/setup_templ.go | 45 +++++++++++++++++++++++++------- pkg/version/version.go | 8 ++++++ 5 files changed, 80 insertions(+), 14 deletions(-) create mode 100644 cmd/cli/cmd/version.go create mode 100644 pkg/version/version.go diff --git a/Makefile b/Makefile index 5a4e8f3..e9c5070 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,18 @@ +VERSION := $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown) +BUILDTIME := $(shell date -u +%Y-%m-%dT%H:%M:%SZ) +LDFLAGS := -X github.com/hculpan/areweplaying/pkg/version.Version=$(VERSION) -X github.com/hculpan/areweplaying/pkg/version.BuildTime=$(BUILDTIME) + all: build build: templ generate - go build -o areweplaying cmd/web/*.go - go build -o awp-cli cmd/cli/*.go + go build -ldflags "$(LDFLAGS)" -o areweplaying cmd/web/*.go + go build -ldflags "$(LDFLAGS)" -o awp-cli cmd/cli/*.go linuxbuild: templ generate - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o areweplaying.linux cmd/web/*.go - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o awp-cli.linux cmd/cli/*.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o areweplaying.linux cmd/web/*.go + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "$(LDFLAGS)" -o awp-cli.linux cmd/cli/*.go clean: rm -rf areweplaying diff --git a/cmd/cli/cmd/version.go b/cmd/cli/cmd/version.go new file mode 100644 index 0000000..fcae41b --- /dev/null +++ b/cmd/cli/cmd/version.go @@ -0,0 +1,25 @@ +/* +Copyright © 2024 NAME HERE +*/ +package cmd + +import ( + "fmt" + + "github.com/hculpan/areweplaying/pkg/version" + "github.com/spf13/cobra" +) + +// versionCmd represents the version command +var versionCmd = &cobra.Command{ + Use: "version", + Short: "Print the build version and time", + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Printf("awp-cli %s (built %s)\n", version.Version, version.BuildTime) + return nil + }, +} + +func init() { + rootCmd.AddCommand(versionCmd) +} diff --git a/cmd/web/templates/setup.templ b/cmd/web/templates/setup.templ index 322bf15..d438d9d 100644 --- a/cmd/web/templates/setup.templ +++ b/cmd/web/templates/setup.templ @@ -3,6 +3,7 @@ package templates import ( "strconv" "github.com/hculpan/areweplaying/pkg/data" +"github.com/hculpan/areweplaying/pkg/version" ) templ Setup(session data.Session) { @@ -197,7 +198,8 @@ templ Setup(session data.Session) { } -