From daf6e29b02f30ba2fcc563b9eb4d824937a6cffa Mon Sep 17 00:00:00 2001 From: Garrison Davis Date: Thu, 1 Dec 2022 15:20:20 -0700 Subject: [PATCH] Make SOURCE_DATE_EPOCH changes for idk (cherry picked from commit be619fa60d47421712fe007de2dc5d685f333149) --- Dockerfile | 2 +- Makefile | 2 ++ idk/Dockerfile | 2 ++ idk/Makefile | 10 +++++++++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index cf84b9403..aa8926406 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ COPY . ./ COPY --from=lattice-builder /lattice/build /lattice RUN /go/bin/statik -src=/lattice -dest=/pilosa -ENV SOURCE_DATE_EPOCH=$SOURCE_DATE_EPOCH +ENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} RUN make build FLAGS="-o build/featurebase" ${MAKE_FLAGS} ##################### diff --git a/Makefile b/Makefile index f9b1d1804..8451ce00a 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,8 @@ GOOS=$(shell $(GO) env GOOS) GOARCH=$(shell $(GO) env GOARCH) VERSION_ID=$(if $(TRIAL_DEADLINE),trial-$(TRIAL_DEADLINE)-,)$(VERSION)-$(GOOS)-$(GOARCH) DATE_FMT="+%FT%T%z" +# set SOURCE_DATE_EPOCH like this to use the last git commit timestamp +# export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) instead of the current time from running `date` ifdef SOURCE_DATE_EPOCH BUILD_TIME ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u "$(DATE_FMT)") else diff --git a/idk/Dockerfile b/idk/Dockerfile index ffd74ea2d..4a44c4e5a 100644 --- a/idk/Dockerfile +++ b/idk/Dockerfile @@ -23,9 +23,11 @@ COPY . . ARG MAKE_FLAGS ARG GO_BUILD_FLAGS +ARG SOURCE_DATE_EPOCH WORKDIR /featurebase/idk/ +ENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} RUN make build GO_BUILD_FLAGS="-mod=vendor ${GO_BUILD_FLAGS}" ${MAKE_FLAGS} FROM ubuntu:20.04 as runner diff --git a/idk/Makefile b/idk/Makefile index 17c9dab64..a79a71400 100644 --- a/idk/Makefile +++ b/idk/Makefile @@ -8,7 +8,14 @@ ODBC_ENABLED= BINOUT ?= bin VERSION := $(shell git describe --tags 2> /dev/null || git rev-parse --verify --short=7 HEAD) VERSION_ID = $(VERSION)-$(GOOS)-$(GOARCH) -BUILD_TIME := $(shell date -u +%FT%T%z) +DATE_FMT="+%FT%T%z" +# set SOURCE_DATE_EPOCH like this to use the last git commit timestamp +# export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) instead of the current time from running `date`. +ifdef SOURCE_DATE_EPOCH + BUILD_TIME ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null || date -u "$(DATE_FMT)") +else + BUILD_TIME ?= $(shell date -u "$(DATE_FMT)") +endif AWS_ACCOUNTID ?= undefined BRANCH_NAME ?= "" @@ -271,6 +278,7 @@ docker-build: vendor --build-arg GO_VERSION=$(GO_VERSION) \ --build-arg MAKE_FLAGS="GOOS=$(GOOS) GOARCH=$(GOARCH) BUILD_CGO=$(BUILD_CGO)" \ --build-arg GO_BUILD_FLAGS=$(GO_BUILD_FLAGS) \ + --build-arg SOURCE_DATE_EPOCH=$(SOURCE_DATE_EPOCH) \ --target builder \ --tag idk:$(BUILD_NAME) ../. mkdir -p build/idk-$(GOOS)-$(GOARCH)