From be619fa60d47421712fe007de2dc5d685f333149 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 --- .gitlab/.gitlab-ci.yml | 3 +++ Dockerfile | 2 +- Makefile | 2 ++ idk/Dockerfile | 2 ++ idk/Makefile | 10 +++++++++- 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.gitlab/.gitlab-ci.yml b/.gitlab/.gitlab-ci.yml index b9b605d07..cf41a3c55 100644 --- a/.gitlab/.gitlab-ci.yml +++ b/.gitlab/.gitlab-ci.yml @@ -497,6 +497,7 @@ idk build_amd64: rules: - if: '$CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"' script: + - export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) - cd ./idk/ - date - make docker-build GOOS="linux" GOARCH="amd64" BUILD_CGO=1 @@ -519,6 +520,7 @@ idk build_arm64: rules: - if: '$CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web"' script: + - export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) - cd ./idk/ - date - make docker-build GOOS="linux" GOARCH="arm64" BUILD_CGO=1 BUILD_NAME="linux-arm64" @@ -543,6 +545,7 @@ idk package_docker_all: rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && ($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web")' script: + - export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct) - make docker-idk GOOS="linux" GOARCH="amd64" - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - make docker-idk-tag-push GOOS="linux" GOARCH="amd64" 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 e9576189f..d98cae550 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 a1ddbf786..a731ef295 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)