diff --git a/Dockerfile b/Dockerfile index 621cbe5443f..3d4f4dbdbe8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,8 @@ RUN yarn build FROM ${GO_IMAGE} as go-builder +ARG COMMIT_SHA="" +ARG BUILD_BRANCH="" ARG GO_BUILD_TAGS="oss" ARG WIRE_TAGS="oss" ARG BINGO="true" @@ -62,7 +64,9 @@ COPY pkg pkg COPY scripts scripts COPY conf conf COPY .github .github -COPY .git .git + +ENV COMMIT_SHA=${COMMIT_SHA} +ENV BUILD_BRANCH=${BUILD_BRANCH} RUN make build-go GO_BUILD_TAGS=${GO_BUILD_TAGS} WIRE_TAGS=${WIRE_TAGS} diff --git a/Makefile b/Makefile index 327ec29b095..b91a2e36b11 100644 --- a/Makefile +++ b/Makefile @@ -191,6 +191,8 @@ build-docker-full: ## Build Docker image for development. --build-arg BINGO=false \ --build-arg GO_BUILD_TAGS=$(GO_BUILD_TAGS) \ --build-arg WIRE_TAGS=$(WIRE_TAGS) \ + --build-arg COMMIT_SHA=$$(git rev-parse --short HEAD) \ + --build-arg BUILD_BRANCH=$$(git rev-parse --abbrev-ref HEAD) \ --tag grafana/grafana$(TAG_SUFFIX):dev \ $(DOCKER_BUILD_ARGS) @@ -202,6 +204,8 @@ build-docker-full-ubuntu: ## Build Docker image based on Ubuntu for development. --build-arg BINGO=false \ --build-arg GO_BUILD_TAGS=$(GO_BUILD_TAGS) \ --build-arg WIRE_TAGS=$(WIRE_TAGS) \ + --build-arg COMMIT_SHA=$$(git rev-parse --short HEAD) \ + --build-arg BUILD_BRANCH=$$(git rev-parse --abbrev-ref HEAD) \ --build-arg BASE_IMAGE=ubuntu:20.04 \ --build-arg GO_IMAGE=golang:1.20.3 \ --tag grafana/grafana$(TAG_SUFFIX):dev-ubuntu \ diff --git a/pkg/build/cmd.go b/pkg/build/cmd.go index 93de968f7b4..7248c91080d 100644 --- a/pkg/build/cmd.go +++ b/pkg/build/cmd.go @@ -217,12 +217,22 @@ func ldflags(opts BuildOpts) (string, error) { return "", err } + commitSha := getGitSha() + if v := os.Getenv("COMMIT_SHA"); v != "" { + commitSha = v + } + + buildBranch := getGitBranch() + if v := os.Getenv("BUILD_BRANCH"); v != "" { + buildBranch = v + } + var b bytes.Buffer b.WriteString("-w") b.WriteString(fmt.Sprintf(" -X main.version=%s", opts.version)) - b.WriteString(fmt.Sprintf(" -X main.commit=%s", getGitSha())) + b.WriteString(fmt.Sprintf(" -X main.commit=%s", commitSha)) b.WriteString(fmt.Sprintf(" -X main.buildstamp=%d", buildStamp)) - b.WriteString(fmt.Sprintf(" -X main.buildBranch=%s", getGitBranch())) + b.WriteString(fmt.Sprintf(" -X main.buildBranch=%s", buildBranch)) if v := os.Getenv("LDFLAGS"); v != "" { b.WriteString(fmt.Sprintf(" -extldflags \"%s\"", v)) }