Skip to content

Commit

Permalink
Adds run-in-docker helps and better checksum + attribution generation (
Browse files Browse the repository at this point in the history
…aws#1568)

* Adds run-in-docker helps and better checksum + attribution generation

* Regenerated help.mk files

* Updates readmes for new make target
  • Loading branch information
jaxesn authored Dec 20, 2022
1 parent 2f52daa commit 1fe54a0
Show file tree
Hide file tree
Showing 39 changed files with 370 additions and 159 deletions.
94 changes: 65 additions & 29 deletions Common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ SKIPPED_K8S_VERSIONS?=
BINARIES_ARE_RELEASE_BRANCHED?=true
IS_RELEASE_BRANCH_BUILD=$(filter true,$(HAS_RELEASE_BRANCHES))
IS_UNRELEASE_BRANCH_TARGET=$(and $(filter false,$(BINARIES_ARE_RELEASE_BRANCHED)),$(filter binaries attribution checksums,$(MAKECMDGOALS)))
TARGETS_ALLOWED_WITH_NO_RELEASE_BRANCH?=build release clean help
TARGETS_ALLOWED_WITH_NO_RELEASE_BRANCH?=build release clean clean-go-cache help
MAKECMDGOALS_WITHOUT_VAR_VALUE=$(foreach t,$(MAKECMDGOALS),$(if $(findstring var-value-,$(t)),,$(t)))
ifneq ($(and $(IS_RELEASE_BRANCH_BUILD),$(or $(RELEASE_BRANCH),$(IS_UNRELEASE_BRANCH_TARGET))),)
RELEASE_BRANCH_SUFFIX=$(if $(filter true,$(BINARIES_ARE_RELEASE_BRANCHED)),/$(RELEASE_BRANCH),)
Expand Down Expand Up @@ -372,7 +372,7 @@ IS_ON_BUILDER_BASE?=$(shell if [ -f /buildkit.sh ]; then echo true; fi;)
BUILDER_PLATFORM?=$(shell echo $$(go env GOHOSTOS)/$$(go env GOHOSTARCH))
needs-cgo-builder=$(and $(if $(filter true,$(CGO_CREATE_BINARIES)),true,),$(if $(filter-out $(1),$(BUILDER_PLATFORM)),true,))
USE_DOCKER_FOR_CGO_BUILD?=false
DOCKER_USE_ID_FOR_LINUX=$(shell if [ "$$(uname -s)" = "Linux" ]; then echo "-u $$(id -u $${USER}):$$(id -g $${USER})"; fi)
DOCKER_USE_ID_FOR_LINUX=$(shell if [ "$$(uname -s)" = "Linux" ] && [ -n "$${USER:-}" ]; then echo "-u $$(id -u $${USER}):$$(id -g $${USER})"; fi)
GO_MOD_CACHE=$(shell source $(BUILD_LIB)/common.sh && build::common::use_go_version $(GOLANG_VERSION) > /dev/null 2>&1 && go env GOMODCACHE)
GO_BUILD_CACHE=$(shell source $(BUILD_LIB)/common.sh && build::common::use_go_version $(GOLANG_VERSION) > /dev/null 2>&1 && go env GOCACHE)
CGO_TARGET?=
Expand Down Expand Up @@ -425,6 +425,7 @@ KUSTOMIZE_TARGET=$(OUTPUT_DIR)/kustomize
GIT_DEPS_DIR?=$(OUTPUT_DIR)/gitdependencies
SPECIAL_TARGET_SECONDARY=$(strip $(PROJECT_DEPENDENCIES_TARGETS) $(GO_MOD_DOWNLOAD_TARGETS))
SKIP_CHECKSUM_VALIDATION?=false
IN_DOCKER_TARGETS=all-attributions all-attributions-checksums all-checksums attribution attribution-checksums binaries checksums clean clean-go-cache
####################################################

#################### TARGETS FOR OVERRIDING ########
Expand All @@ -433,15 +434,6 @@ RELEASE_TARGETS?=validate-checksums $(if $(IMAGE_NAMES),images,) $(if $(filter t
####################################################

define BUILDCTL
if [[ "$(USE_DOCKER_FOR_CGO_BUILD)" = "true" ]]; then \
source $(BUILD_LIB)/common.sh && build::docker::retry_pull $(BUILDER_IMAGE); \
docker run --rm -w /eks-anywhere-build-tooling/projects/$(COMPONENT) $(DOCKER_USE_ID_FOR_LINUX) \
--mount type=bind,source=$(BASE_DIRECTORY),target=/eks-anywhere-build-tooling \
--mount type=bind,source=$(GO_MOD_CACHE),target=/mod-cache \
-e GOPROXY=$(GOPROXY) -e GOMODCACHE=/mod-cache \
--platform $(IMAGE_PLATFORMS) \
--init --entrypoint make $(BUILDER_IMAGE) $(CGO_TARGET) BINARY_PLATFORMS=$(IMAGE_PLATFORMS); \
else \
$(BUILD_LIB)/buildkit.sh \
build \
--frontend dockerfile.v0 \
Expand All @@ -456,9 +448,30 @@ define BUILDCTL
$(foreach IMPORT_CACHE,$(IMAGE_IMPORT_CACHE),--import-cache $(IMPORT_CACHE)) \
$(if $(IMAGE_METADATA_FILE),--metadata-file $(IMAGE_METADATA_FILE),) \
--opt target=$(IMAGE_TARGET) \
--output type=$(IMAGE_OUTPUT_TYPE),oci-mediatypes=true,\"name=$(ALL_IMAGE_TAGS)\",$(IMAGE_OUTPUT); \
fi
endef
--output type=$(IMAGE_OUTPUT_TYPE),oci-mediatypes=true,\"name=$(ALL_IMAGE_TAGS)\",$(IMAGE_OUTPUT)
endef

define CGO_DOCKER
source $(BUILD_LIB)/common.sh && build::docker::retry_pull --platform $(IMAGE_PLATFORMS) $(BUILDER_IMAGE); \
INTERACTIVE="$(shell if [ -t 0 ]; then echo '-it'; fi)"; \
docker run --rm $$INTERACTIVE -w /eks-distro/projects/$(COMPONENT) $(DOCKER_USE_ID_FOR_LINUX) \
--mount type=bind,source=$(BASE_DIRECTORY),target=/eks-distro \
--mount type=bind,source=$(GO_MOD_CACHE),target=/mod-cache \
-e GOPROXY=$(GOPROXY) -e GOMODCACHE=/mod-cache \
--platform $(IMAGE_PLATFORMS) \
--init $(BUILDER_IMAGE) make $(CGO_TARGET) BINARY_PLATFORMS=$(IMAGE_PLATFORMS)
endef

define SIMPLE_CREATE_BINARIES_SHELL
$(BASE_DIRECTORY)/build/lib/simple_create_binaries.sh $(MAKE_ROOT) $(MAKE_ROOT)/$(OUTPUT_PATH) $(REPO) $(GOLANG_VERSION) $(PLATFORM) "$(SOURCE_PATTERN)" \
"$(GOBUILD_COMMAND)" "$(EXTRA_GOBUILD_FLAGS)" "$(GO_LDFLAGS)" $(CGO_ENABLED) "$(CGO_LDFLAGS)" "$(GO_MOD_PATH)" "$(BINARY_TARGET_FILES_BUILD_TOGETHER)"
endef

# $1 - make target
# $2 - target directory
define CGO_CREATE_BINARIES_SHELL
$(MAKE) binary-builder/cgo/$(PLATFORM:linux/%=%) IMAGE_OUTPUT=dest=$(OUTPUT_BIN_DIR)/$(2) CGO_TARGET=$(1) IMAGE_BUILD_ARGS="GOPROXY COMPONENT CGO_TARGET"
endef

define WRITE_LOCAL_IMAGE_TAG
echo $(IMAGE_TAG) > $(IMAGE_OUTPUT_DIR)/$(IMAGE_OUTPUT_NAME).docker_tag
Expand Down Expand Up @@ -528,12 +541,7 @@ $(OUTPUT_BIN_DIR)/%: SOURCE_PATTERN=$(if $(filter $(BINARY_TARGET),$(BINARY_TARG
$(OUTPUT_BIN_DIR)/%: OUTPUT_PATH=$(if $(and $(if $(filter false,$(call IS_ONE_WORD,$(BINARY_TARGET_FILES_BUILD_TOGETHER))),$(filter $(BINARY_TARGET),$(BINARY_TARGET_FILES_BUILD_TOGETHER)))),$(@D)/,$@)
$(OUTPUT_BIN_DIR)/%: GO_MOD_PATH=$($(call GO_MOD_TARGET_FOR_BINARY_VAR_NAME,$(BINARY_TARGET)))
$(OUTPUT_BIN_DIR)/%: $$(call GO_MOD_DOWNLOAD_TARGET_FROM_GO_MOD_PATH,$$(GO_MOD_PATH))
if [ "$(call needs-cgo-builder,$(PLATFORM))" == "true" ]; then \
$(MAKE) binary-builder/cgo/$(PLATFORM:linux/%=%) IMAGE_OUTPUT=dest=$(OUTPUT_BIN_DIR)/$(*D) CGO_TARGET=$@ IMAGE_BUILD_ARGS="GOPROXY COMPONENT CGO_TARGET"; \
else \
$(BASE_DIRECTORY)/build/lib/simple_create_binaries.sh $(MAKE_ROOT) $(MAKE_ROOT)/$(OUTPUT_PATH) $(REPO) $(GOLANG_VERSION) $(PLATFORM) "$(SOURCE_PATTERN)" \
"$(GOBUILD_COMMAND)" "$(EXTRA_GOBUILD_FLAGS)" "$(GO_LDFLAGS)" $(CGO_ENABLED) "$(CGO_LDFLAGS)" "$(GO_MOD_PATH)" "$(BINARY_TARGET_FILES_BUILD_TOGETHER)"; \
fi
$(if $(filter true,$(call needs-cgo-builder,$(PLATFORM))),$(call CGO_CREATE_BINARIES_SHELL,$@,$(*D)),$(call SIMPLE_CREATE_BINARIES_SHELL))
endif

.PHONY: binaries
Expand Down Expand Up @@ -591,6 +599,11 @@ attribution: $(and $(filter true,$(HAS_LICENSES)),$(ATTRIBUTION_TARGETS))
attribution-pr: attribution
$(BASE_DIRECTORY)/build/update-attribution-files/create_pr.sh

.PHONY: all-attributions
all-attributions:
$(BASE_DIRECTORY)/build/update-attribution-files/make_attribution.sh projects/$(COMPONENT) attribution


#### Tarball Targets

.PHONY: tarballs
Expand Down Expand Up @@ -629,6 +642,18 @@ ifneq ($(and $(strip $(BINARY_TARGETS)), $(filter false, $(SKIP_CHECKSUM_VALIDAT
$(BASE_DIRECTORY)/build/lib/validate_checksums.sh $(MAKE_ROOT) $(PROJECT_ROOT) $(MAKE_ROOT)/$(OUTPUT_BIN_DIR) $(FAKE_ARM_BINARIES_FOR_VALIDATION)
endif

.PHONY: attribution-checksums
attribution-checksums: attribution checksums

.PHONY: all-checksums
all-checksums:
$(BASE_DIRECTORY)/build/update-attribution-files/make_attribution.sh projects/$(COMPONENT) checksums

.PHONY: all-attributions-checksums
all-attributions-checksums:
$(BASE_DIRECTORY)/build/update-attribution-files/make_attribution.sh projects/$(COMPONENT) "attribution checksums"


#### Image Helpers

ifneq ($(IMAGE_NAMES),)
Expand Down Expand Up @@ -691,14 +716,14 @@ endif
## CGO Targets
.PHONY: %/cgo/amd64 %/cgo/arm64 prepare-cgo-folder

# .git folder needed so git properly finds the root of the repo
prepare-cgo-folder:
@mkdir -p $(CGO_SOURCE)/eks-distro/
rsync -rm --exclude='.git/***' \
--exclude='***/_output/***' --exclude='projects/$(COMPONENT)/$(REPO)/***' \
--include='projects/$(COMPONENT)/***' --include='*/' --exclude='projects/***' \
$(BASE_DIRECTORY)/ $(CGO_SOURCE)/eks-distro/
@mkdir -p $(OUTPUT_BIN_DIR)/$(subst /,-,$(IMAGE_PLATFORMS))
# Need so git properly finds the root of the repo
@mkdir -p $(CGO_SOURCE)/eks-distro/.git/{refs,objects}
@cp $(BASE_DIRECTORY)/.git/HEAD $(CGO_SOURCE)/eks-distro/.git

Expand All @@ -707,16 +732,16 @@ prepare-cgo-folder:
%/cgo/amd64 %/cgo/arm64: IMAGE_NAME=binary-builder
%/cgo/amd64 %/cgo/arm64: IMAGE_BUILD_ARGS?=GOPROXY COMPONENT
%/cgo/amd64 %/cgo/arm64: IMAGE_CONTEXT_DIR?=$(CGO_SOURCE)
%/cgo/amd64 %/cgo/arm64: BUILDER_IMAGE=$(CURRENT_BUILDER_BASE_IMAGE)
%/cgo/amd64 %/cgo/arm64: BUILDER_IMAGE=$(GOLANG_GCC_BUILDER_IMAGE)

%/cgo/amd64: IMAGE_PLATFORMS=linux/amd64
%/cgo/arm64: IMAGE_PLATFORMS=linux/arm64

%/cgo/amd64: prepare-cgo-folder
$(BUILDCTL)
$(if $(filter true, $(USE_DOCKER_FOR_CGO_BUILD)),$(CGO_DOCKER),$(BUILDCTL))

%/cgo/arm64: prepare-cgo-folder
$(BUILDCTL)
$(if $(filter true, $(USE_DOCKER_FOR_CGO_BUILD)),$(CGO_DOCKER),$(BUILDCTL))

# As an attempt to see if using docker is more stable for cgo builds in Codebuild
binary-builder/cgo/%: USE_DOCKER_FOR_CGO_BUILD=$(shell command -v docker &> /dev/null && docker info > /dev/null 2>&1 && echo "true")
Expand Down Expand Up @@ -824,7 +849,7 @@ add-generated-help-block:
$(BUILD_LIB)/generate_help_body.sh $(MAKE_ROOT) "$(BINARY_TARGET_FILES)" "$(BINARY_PLATFORMS)" "${BINARY_TARGETS}" \
$(REPO) $(if $(PATCHES_DIR),true,false) "$(LOCAL_IMAGE_TARGETS)" "$(IMAGE_TARGETS)" "$(BUILD_TARGETS)" "$(RELEASE_TARGETS)" \
"$(HAS_S3_ARTIFACTS)" "$(HAS_LICENSES)" "$(REPO_NO_CLONE)" "$(PROJECT_DEPENDENCIES_TARGETS)" \
"$(HAS_HELM_CHART)"
"$(HAS_HELM_CHART)" "$(IN_DOCKER_TARGETS)"

## --------------------------------------
## Update Helpers
Expand All @@ -835,10 +860,6 @@ add-generated-help-block:
run-target-in-docker: # Run `MAKE_TARGET` using builder base docker container
$(BUILD_LIB)/run_target_docker.sh $(COMPONENT) $(MAKE_TARGET) $(IMAGE_REPO) "$(RELEASE_BRANCH)" $(ARTIFACTS_BUCKET)

.PHONY: update-attribution-checksums-docker
update-attribution-checksums-docker: # Update attribution and checksums using the builder base docker container
$(BUILD_LIB)/update_checksum_docker.sh $(COMPONENT) $(IMAGE_REPO) $(RELEASE_BRANCH)

.PHONY: stop-docker-builder
stop-docker-builder: # Clean up builder base docker container
docker rm -f -v eks-d-builder
Expand All @@ -856,6 +877,10 @@ update-go-mods: checkout-repo
cp $(REPO)/$$gomod/go.{mod,sum} $(DEST_PATH); \
done

.PHONY: all-update-go-mods
all-update-go-mods:
$(BASE_DIRECTORY)/build/update-attribution-files/make_attribution.sh projects/$(COMPONENT) update-go-mods

.PHONY: update-vendor-for-dep-patch
update-vendor-for-dep-patch: # After bumping dep in go.mod file, uses generic vendor update script or one provided from upstream project
update-vendor-for-dep-patch: checkout-repo
Expand Down Expand Up @@ -889,3 +914,14 @@ create-ecr-repos: $(foreach image,$(IMAGE_NAMES),$(image)/create-ecr-repo) $(if
var-value-%:
@echo $($*)

## --------------------------------------
## Docker Helpers
## --------------------------------------
# $1 - target
define RUN_IN_DOCKER_TARGET
.PHONY: run-$(1)-in-docker
run-$(1)-in-docker: MAKE_TARGET=$(1)
run-$(1)-in-docker: run-target-in-docker
endef

$(foreach target,$(IN_DOCKER_TARGETS),$(eval $(call RUN_IN_DOCKER_TARGET,$(target))))
10 changes: 3 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -134,10 +134,6 @@ makes-binaries-%:
run-target-in-docker:
build/lib/run_target_docker.sh $(PROJECT) $(MAKE_TARGET) $(IMAGE_REPO) $(RELEASE_BRANCH)

.PHONY: update-attribution-checksums-docker
update-attribution-checksums-docker:
build/lib/update_checksum_docker.sh $(PROJECT) $(IMAGE_REPO) $(RELEASE_BRANCH)

.PHONY: stop-docker-builder
stop-docker-builder:
docker rm -f -v eks-d-builder
Expand Down Expand Up @@ -168,7 +164,7 @@ attribution-files: $(addprefix attribution-files-project-, $(ALL_PROJECTS))
.PHONY: attribution-files-project-%
attribution-files-project-%:
$(eval PROJECT_PATH=projects/$(subst _,/,$*))
build/update-attribution-files/make_attribution.sh $(PROJECT_PATH) "attribution clean-output clean-go-cache"
$(MAKE) -C $(PROJECT_PATH) all-attributions

.PHONY: update-attribution-files
update-attribution-files: add-generated-help-block go-mod-files attribution-files
Expand All @@ -178,7 +174,7 @@ update-attribution-files: add-generated-help-block go-mod-files attribution-file
.PHONY: checksum-files-project-%
checksum-files-project-%:
$(eval PROJECT_PATH=projects/$(subst _,/,$*))
build/update-attribution-files/make_attribution.sh $(PROJECT_PATH) "checksums clean-output clean-go-cache"
$(MAKE) -C $(PROJECT_PATH) all-checksums

.PHONY: update-checksum-files
update-checksum-files: $(addprefix checksum-files-project-, $(ALL_PROJECTS))
Expand All @@ -187,7 +183,7 @@ update-checksum-files: $(addprefix checksum-files-project-, $(ALL_PROJECTS))
.PHONY: go-mod-files-project-%
go-mod-files-project-%:
$(eval PROJECT_PATH=projects/$(subst _,/,$*))
build/update-attribution-files/make_attribution.sh $(PROJECT_PATH) update-go-mods
$(MAKE) -C $(PROJECT_PATH) all-update-go-mods

.PHONY: go-mod-files
go-mod-files: $(addprefix go-mod-files-project-, $(ALL_PROJECTS))
Expand Down
13 changes: 12 additions & 1 deletion build/lib/generate_help_body.sh
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ HAS_LICENSES="${12}"
REPO_NO_CLONE="${13}"
FETCH_BINARIES_TARGETS="${14}"
HAS_HELM_CHART="${15}"
IN_DOCKER_TARGETS="${16}"

NL=$'\n'
HEADER="########### DO NOT EDIT #############################"
Expand Down Expand Up @@ -70,6 +71,7 @@ if [ ! -z "$(echo "$BINARY_TARGETS" | xargs)" ]; then
CHECKSUMS_TARGETS_HELP+="${NL}${NL}##@ Checksum Targets"
CHECKSUMS_TARGETS_HELP+="${NL}checksums: ## Update checksums file based on currently built binaries."
CHECKSUMS_TARGETS_HELP+="${NL}validate-checksums: # Validate checksums of currently built binaries against checksums file."
CHECKSUMS_TARGETS_HELP+="${NL}all-checksums: ## Update checksums files for all RELEASE_BRANCHes."
fi

GIT_TARGETS_HELP=""
Expand Down Expand Up @@ -121,6 +123,9 @@ if [[ "$HAS_LICENSES" == "true" ]]; then
LICENSES_TARGETS+="${NL}gather-licenses: ## Helper to call \$(GATHER_LICENSES_TARGETS) which gathers all licenses"
LICENSES_TARGETS+="${NL}attribution: ## Generates attribution from licenses gathered during \`gather-licenses\`."
LICENSES_TARGETS+="${NL}attribution-pr: ## Generates PR to update attribution files for projects"
LICENSES_TARGETS+="${NL}attribution-checksums: ## Update attribution and checksums files."
LICENSES_TARGETS+="${NL}all-attributions: ## Update attribution files for all RELEASE_BRANCHes."
LICENSES_TARGETS+="${NL}all-attributions-checksums: ## Update attribution and checksums files for all RELEASE_BRANCHes."
fi

CLEAN_TARGETS="${NL}${NL}##@ Clean Targets"
Expand All @@ -145,11 +150,17 @@ if [[ "$HAS_HELM_CHART" == "true" ]]; then
HELM_TARGETS+="${NL}helm/push: ## Build helm chart and push to registry defined in IMAGE_REPO."
fi

TARGETS=(${IN_DOCKER_TARGETS// / })
DOCKER_TARGETS="${NL}${NL}##@ Run in Docker Targets"
for target in "${TARGETS[@]}"; do
DOCKER_TARGETS+="${NL}run-${target}-in-docker: ## Run \`${target}\` in docker builder container"
done

cat >> $HELPFILE << EOF
${NL}${NL}${NL}${HEADER}
# To update call: make add-generated-help-block
# This is added to help document dynamic targets and support shell autocompletion
${GIT_TARGETS_HELP}${PATCHES_TARGET}${BINARY_TARGETS_HELP}${IMAGE_TARGETS_HELP}${HELM_TARGETS}${FETCH_BINARY_TARGETS_HELP}${CHECKSUMS_TARGETS_HELP}${ARTIFACTS_TARGETS}${LICENSES_TARGETS}${CLEAN_TARGETS}
${GIT_TARGETS_HELP}${PATCHES_TARGET}${BINARY_TARGETS_HELP}${IMAGE_TARGETS_HELP}${HELM_TARGETS}${FETCH_BINARY_TARGETS_HELP}${CHECKSUMS_TARGETS_HELP}${DOCKER_TARGETS}${ARTIFACTS_TARGETS}${LICENSES_TARGETS}${CLEAN_TARGETS}
${EXTRA_HELP}
##@ Build Targets
Expand Down
46 changes: 10 additions & 36 deletions build/lib/run_target_docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ PROJECT="$1"
TARGET="$2"
IMAGE_REPO="${3:-}"
RELEASE_BRANCH="${4:-}"
ARTIFACTS_BUCKET="${5:-}"
ARTIFACTS_BUCKET="${5:-$ARTIFACTS_BUCKET}"

SCRIPT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
MAKE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P)"
Expand All @@ -37,41 +37,15 @@ echo "****************************************************************"
if ! docker ps -f name=eks-d-builder | grep -w eks-d-builder; then
build::docker::retry_pull public.ecr.aws/eks-distro-build-tooling/builder-base:latest

NETRC=""
if [ -f $HOME/.netrc ]; then
NETRC="--mount type=bind,source=$HOME/.netrc,target=/root/.netrc"
fi
NETRC=""
if [ -f $HOME/.netrc ]; then
NETRC="--mount type=bind,source=$HOME/.netrc,target=/root/.netrc"
fi

docker run -d --name eks-d-builder --privileged $NETRC -e GOPROXY=$GOPROXY --entrypoint sleep \
public.ecr.aws/eks-distro-build-tooling/builder-base:latest infinity
docker run -d --name eks-d-builder --privileged $NETRC \
--mount type=bind,source=$MAKE_ROOT,target=/eks-distro \
-e GOPROXY=${GOPROXY:-} --entrypoint sleep \
public.ecr.aws/eks-distro-build-tooling/builder-base:latest infinity
fi

EXTRA_INCLUDES=""
PROJECT_DEPENDENCIES=$(make --no-print-directory -C $MAKE_ROOT/projects/$PROJECT var-value-PROJECT_DEPENDENCIES RELEASE_BRANCH=$RELEASE_BRANCH)
if [ -n "$PROJECT_DEPENDENCIES" ]; then
DEPS=(${PROJECT_DEPENDENCIES// / })
for dep in "${DEPS[@]}"; do
DEP_PRODUCT="$(cut -d/ -f1 <<< $dep)"
DEP_ORG="$(cut -d/ -f2 <<< $dep)"
DEP_REPO="$(cut -d/ -f3 <<< $dep)"

if [[ "$DEP_PRODUCT" == "eksd" ]]; then
continue
fi

EXTRA_INCLUDES+=" --include=projects/$DEP_ORG/$DEP_REPO/***"
done
fi

rsync -e 'docker exec -i' -t -rm --exclude='.git/***' \
--exclude="projects/$PROJECT/_output/***" --exclude="projects/$PROJECT/$(basename $PROJECT)/***" \
--include="projects/$PROJECT/***" $EXTRA_INCLUDES \
--include='*/' --exclude='projects/***' $MAKE_ROOT/ eks-d-builder:/eks-distro

# Need so git properly finds the root of the repo
CURRENT_HEAD="$(cat $MAKE_ROOT/.git/HEAD | awk '{print $2}')"
docker exec -it eks-d-builder mkdir -p /eks-distro/.git/{refs,objects} /eks-distro/.git/$(dirname $CURRENT_HEAD)
docker cp $MAKE_ROOT/.git/HEAD eks-d-builder:/eks-distro/.git
docker cp $MAKE_ROOT/.git/$CURRENT_HEAD eks-d-builder:/eks-distro/.git/$CURRENT_HEAD

docker exec -it eks-d-builder make $TARGET -C /eks-distro/projects/$PROJECT RELEASE_BRANCH=$RELEASE_BRANCH IMAGE_REPO=$IMAGE_REPO ARTIFACTS_BUCKET=$ARTIFACTS_BUCKET
docker exec -e RELEASE_BRANCH=$RELEASE_BRANCH -it eks-d-builder make $TARGET -C /eks-distro/projects/$PROJECT IMAGE_REPO=$IMAGE_REPO ARTIFACTS_BUCKET=$ARTIFACTS_BUCKET
37 changes: 0 additions & 37 deletions build/lib/update_checksum_docker.sh

This file was deleted.

Loading

0 comments on commit 1fe54a0

Please sign in to comment.