This is an automated email from the ASF dual-hosted git repository.
ccondit pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-k8shim.git
The following commit(s) were added to refs/heads/master by this push:
new f1e7920e [YUNIKORN-2874] Fix reproducible builds when a release is
generated (#914)
f1e7920e is described below
commit f1e7920eb53c59014838048468c6d79d05ca1e5a
Author: Craig Condit <[email protected]>
AuthorDate: Tue Sep 17 12:06:27 2024 -0500
[YUNIKORN-2874] Fix reproducible builds when a release is generated (#914)
Ensure that the parent directory (containing the core and SI) is mounted
into the Docker build when generating reproducible builds in release
mode.
Closes: #914
---
Makefile | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index d92b1ab9..11eb865e 100644
--- a/Makefile
+++ b/Makefile
@@ -89,6 +89,16 @@ else
REPRO :=
endif
+# Release build requires using parent dir as base for buildroot
+RELEASE_BUILD := $(test -f "$(BASE_DIR)/.gitignore" ; echo $$?)
+ifeq ($(RELEASE_BUILD),1)
+ DOCKER_BUILDROOT := $(shell cd "$(BASE_DIR)/.." ; pwd)
+ DOCKER_SRCROOT := /buildroot/k8shim
+else
+ DOCKER_BUILDROOT := $(shell cd "$(BASE_DIR)" ; pwd)
+ DOCKER_SRCROOT := /buildroot
+endif
+
# Build date - Use git commit, then cached build.date, finally current date
# This allows for reproducible builds as long as release tarball contains the
build.date file.
DATE := $(shell if [ -d "$(BASE_DIR)/.git" ]; then TZ=UTC0 git --no-pager log
-1 --date=iso8601-strict-local --format=%cd 2>/dev/null ; fi || true)
@@ -440,7 +450,7 @@ $(RELEASE_BIN_DIR)/$(SCHEDULER_BINARY): go.mod go.sum
$(shell find pkg)
@echo "building binary for scheduler docker image"
@mkdir -p "$(RELEASE_BIN_DIR)"
ifeq ($(REPRO),1)
- docker run -t --rm=true --volume "$(BASE_DIR):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd /buildroot && \
+ docker run -t --rm=true --volume "$(DOCKER_BUILDROOT):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd $(DOCKER_SRCROOT) && \
CGO_ENABLED=0 GOOS=linux GOARCH=\"${EXEC_ARCH}\" go build \
-a \
-o=${RELEASE_BIN_DIR}/${SCHEDULER_BINARY} \
@@ -468,7 +478,7 @@ $(RELEASE_BIN_DIR)/$(PLUGIN_BINARY): go.mod go.sum $(shell
find pkg)
@echo "building binary for plugin docker image"
@mkdir -p "$(RELEASE_BIN_DIR)"
ifeq ($(REPRO),1)
- docker run -t --rm=true --volume "$(BASE_DIR):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd /buildroot && \
+ docker run -t --rm=true --volume "$(DOCKER_BUILDROOT):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd $(DOCKER_SRCROOT) && \
CGO_ENABLED=0 GOOS=linux GOARCH=\"${EXEC_ARCH}\" go build \
-a \
-o=${RELEASE_BIN_DIR}/${PLUGIN_BINARY} \
@@ -555,7 +565,7 @@ $(RELEASE_BIN_DIR)/$(ADMISSION_CONTROLLER_BINARY): go.mod
go.sum $(shell find pk
@echo "building admission controller binary"
@mkdir -p "$(RELEASE_BIN_DIR)"
ifeq ($(REPRO),1)
- docker run -t --rm=true --volume "$(BASE_DIR):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd /buildroot && \
+ docker run -t --rm=true --volume "$(DOCKER_BUILDROOT):/buildroot"
"golang:$(GO_REPRO_VERSION)" sh -c "cd $(DOCKER_SRCROOT) && \
CGO_ENABLED=0 GOOS=linux GOARCH=\"${EXEC_ARCH}\" go build \
-a \
-o=$(RELEASE_BIN_DIR)/$(ADMISSION_CONTROLLER_BINARY) \
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]