Skip to content

Commit b69ab4c

Browse files
committed
build: inject version into forego binary
mirroring what's being done with docker-gen
1 parent ae5cca3 commit b69ab4c

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

.github/workflows/build-publish.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ jobs:
7070
uses: docker/build-push-action@v5
7171
with:
7272
context: .
73+
build-args: FOREGO_VERSION=${{ steps.forego_version.outputs.VERSION }}
7374
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
7475
file: Dockerfile.${{ matrix.base }}
7576
sbom: true

Dockerfile.alpine

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
ARG FOREGO_VERSION=main
2+
13
# Build forego
24
FROM --platform=$BUILDPLATFORM golang:1.21.5-alpine as go-builder
35

46
ENV CGO_ENABLED=0
57

6-
ARG TARGETOS TARGETARCH TARGETVARIANT
8+
ARG FOREGO_VERSION TARGETOS TARGETARCH TARGETVARIANT
79
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT
810

911
RUN apk add --no-cache musl-dev
@@ -21,11 +23,14 @@ RUN set -eu; \
2123
*) [ -z "$VARIANT" ] ;; \
2224
esac; \
2325
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
24-
go build -o forego .; \
26+
go build -ldflags "-X main.buildVersion=${FOREGO_VERSION}" -o forego .; \
2527
go clean -cache
2628

2729
FROM --platform=$TARGETPLATFORM alpine:3.19.0
2830

31+
ARG FOREGO_VERSION
32+
ENV FOREGO_VERSION=${FOREGO_VERSION}
33+
2934
RUN apk add --no-cache bash
3035

3136
# Install Forego

Dockerfile.debian

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
ARG FOREGO_VERSION=main
2+
13
# Build forego
24
FROM --platform=$BUILDPLATFORM golang:1.21.5 as go-builder
35

46
ENV CGO_ENABLED=0
57

6-
ARG TARGETOS TARGETARCH TARGETVARIANT
8+
ARG FOREGO_VERSION TARGETOS TARGETARCH TARGETVARIANT
79
ENV GOOS=$TARGETOS GOARCH=$TARGETARCH VARIANT=$TARGETVARIANT
810

911
WORKDIR /build
@@ -19,11 +21,14 @@ RUN set -eu; \
1921
*) [ -z "$VARIANT" ] ;; \
2022
esac; \
2123
go env | grep -E 'OS=|ARCH=|ARM=|AMD64='; \
22-
go build -o forego .; \
24+
go build -ldflags "-X main.buildVersion=${FOREGO_VERSION}" -o forego .; \
2325
go clean -cache
2426

2527
FROM --platform=$TARGETPLATFORM debian:12.4-slim
2628

29+
ARG FOREGO_VERSION
30+
ENV FOREGO_VERSION=${FOREGO_VERSION}
31+
2732
# Install Forego
2833
COPY --from=go-builder /build/forego /usr/local/bin/forego
2934

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
BIN = forego
22
SRC = $(shell find . -name '*.go')
33

4+
TAG:=`git describe --tags`
5+
LDFLAGS:=-X main.buildVersion=$(TAG)
6+
47
.PHONY: all build clean lint test
58

69
all: build
@@ -20,4 +23,4 @@ test: lint get-deps build
2023
go test -v -race -cover ./...
2124

2225
$(BIN): $(SRC)
23-
go build -o $@
26+
go build -ldflags "$(LDFLAGS)" -o $@

0 commit comments

Comments
 (0)