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]

Reply via email to