From 0bb47d4dcfa8d1d66ecacf3a190d674925965c79 Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Sun, 20 Apr 2025 10:11:08 -0700 Subject: [PATCH] chore: adds sha to version --- .github/workflows/deploy.yml | 4 +++- .github/workflows/dev.yml | 4 +++- Dockerfile | 3 ++- Makefile | 7 ++++--- internal/support/cli/args.go | 1 + internal/web/version.go | 4 +++- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 86ca4d5a..4342f7d4 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -127,7 +127,9 @@ jobs: context: . platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 tags: ${{ steps.meta.outputs.tags }} - build-args: TAG=${{ steps.meta.outputs.version }} + build-args: | + TAG=${{ steps.meta.outputs.version }} + SHA=${{ GITHUB_SHA::7 }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 2e008f57..6f0a098d 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -45,7 +45,9 @@ jobs: push: true platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 tags: ${{ steps.meta.outputs.tags }} - build-args: TAG=${{ steps.meta.outputs.version }} + build-args: | + TAG=${{ steps.meta.outputs.version }} + SHA=${{ GITHUB_SHA::7 }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha cache-to: type=gha,mode=max diff --git a/Dockerfile b/Dockerfile index a2941a29..2b83eeac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,13 +48,14 @@ COPY --from=node /build/dist ./dist # Args ARG TAG=dev +ARG SHA= ARG TARGETOS TARGETARCH # Generate protos RUN go generate # Build binary -RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/amir20/dozzle/internal/support/cli.Version=$TAG" -o dozzle +RUN GOOS=$TARGETOS GOARCH=$TARGETARCH CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/amir20/dozzle/internal/support/cli.Version=$TAG -X github.com/amir20/dozzle/internal/support/cli.SHA=$SHA" -o dozzle RUN mkdir /data diff --git a/Makefile b/Makefile index b6444157..c19257ba 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ PROTO_DIR := protos GEN_DIR := internal/agent/pb PROTO_FILES := $(wildcard $(PROTO_DIR)/*.proto) GEN_FILES := $(patsubst $(PROTO_DIR)/%.proto,$(GEN_DIR)/%.pb.go,$(PROTO_FILES)) - +SHA := $(shell git rev-parse --short HEAD) .PHONY: clean clean: @rm -rf dist @@ -26,11 +26,12 @@ test: fake_assets generate .PHONY: build build: dist generate - CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/amir20/dozzle/internal/support/cli.Version=local" + echo "Building with SHA: $(SHA)" + CGO_ENABLED=0 go build -ldflags "-s -w -X github.com/amir20/dozzle/internal/support/cli.Version=local -X github.com/amir20/dozzle/internal/support/cli.SHA=$(SHA)" .PHONY: docker docker: shared_key.pem shared_cert.pem - @docker build --build-arg TAG=local -t amir20/dozzle . + @docker build --build-arg TAG=local --build-arg SHA=$(SHA) -t amir20/dozzle . generate: shared_key.pem shared_cert.pem $(GEN_FILES) diff --git a/internal/support/cli/args.go b/internal/support/cli/args.go index d1bc5510..0e627b50 100644 --- a/internal/support/cli/args.go +++ b/internal/support/cli/args.go @@ -9,6 +9,7 @@ import ( ) var Version = "head" +var SHA = "" type Args struct { Addr string `arg:"env:DOZZLE_ADDR" default:":8080" help:"sets host:port to bind for server. This is rarely needed inside a docker container."` diff --git a/internal/web/version.go b/internal/web/version.go index 7509e46e..01ab3903 100644 --- a/internal/web/version.go +++ b/internal/web/version.go @@ -3,9 +3,11 @@ package web import ( "fmt" "net/http" + + "github.com/amir20/dozzle/internal/support/cli" ) func (h *handler) version(w http.ResponseWriter, r *http.Request) { w.Header().Add("Content-Type", "text/html") - fmt.Fprintf(w, "
%v
", h.config.Version) + fmt.Fprintf(w, "
%v  commit: %v
", h.config.Version, cli.SHA) }