Skip to content

Commit 8c34f1e

Browse files
authored
Make skaffold reproducible (GoogleContainerTools#6238)
Use SOURCE_DATE_EPOCH to set the previous build date when rebuilding a built binary. Motivation: https://reproducible-builds.org/
1 parent ea2b8b5 commit 8c34f1e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Makefile

+8-1
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,15 @@ ifeq "$(strip $(VERSION))" ""
4343
override VERSION = $(shell git describe --always --tags --dirty)
4444
endif
4545

46+
DATE_FMT = +%Y-%m-%dT%H:%M:%SZ
47+
ifdef SOURCE_DATE_EPOCH
48+
BUILD_DATE ?= $(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)")
49+
else
50+
BUILD_DATE ?= $(shell date "$(DATE_FMT)")
51+
endif
52+
4653
GO_LDFLAGS = -X $(VERSION_PACKAGE).version=$(VERSION)
47-
GO_LDFLAGS += -X $(VERSION_PACKAGE).buildDate=$(shell date +'%Y-%m-%dT%H:%M:%SZ')
54+
GO_LDFLAGS += -X $(VERSION_PACKAGE).buildDate=$(BUILD_DATE)
4855
GO_LDFLAGS += -X $(VERSION_PACKAGE).gitCommit=$(COMMIT)
4956
GO_LDFLAGS += -s -w
5057

0 commit comments

Comments
 (0)