From daf2a7ce70e0f4777fba349750241c84661e01bf Mon Sep 17 00:00:00 2001 From: Ross Golder Date: Thu, 30 Oct 2025 13:55:46 +0700 Subject: [PATCH 1/2] Update makelib/xpkg.mk Signed-off-by: Ross Golder --- makelib/xpkg.mk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/makelib/xpkg.mk b/makelib/xpkg.mk index 192fb02..11c5c0c 100644 --- a/makelib/xpkg.mk +++ b/makelib/xpkg.mk @@ -66,7 +66,7 @@ endif # 1: xpkg define xpkg.build.targets -xpkg.build.$(1): +xpkg.build.$(1): $(CROSSPLANE_CLI) ifeq ($(XPKG_CLEANUP_EXAMPLES_ENABLED),true) @rm -rf $(WORK_DIR)/xpkg-cleaned-examples @GOOS=$(HOSTOS) GOARCH=$(TARGETARCH) go run github.com/upbound/uptest/cmd/cleanupexamples@$(XPKG_CLEANUP_EXAMPLES_VERSION) $(XPKG_EXAMPLES_DIR) $(XPKG_PROCESSED_EXAMPLES_DIR) || $(FAIL) @@ -90,7 +90,7 @@ $(foreach x,$(XPKGS),$(eval $(call xpkg.build.targets,$(x)))) # 1: registry/org 2: repo define xpkg.release.targets -xpkg.release.publish.$(1).$(2): +xpkg.release.publish.$(1).$(2): $(CROSSPLANE_CLI) @$(INFO) Pushing package $(1)/$(2):$(VERSION) @$(CROSSPLANE_CLI) xpkg push \ $(foreach p,$(XPKG_LINUX_PLATFORMS),--package-files $(XPKG_OUTPUT_DIR)/$(p)/$(2)-$(VERSION).xpkg ) \ From d4afb65db11ed9ec2aec693f97edf4f81443818e Mon Sep 17 00:00:00 2001 From: Ross Golder Date: Thu, 30 Oct 2025 16:46:09 +0700 Subject: [PATCH 2/2] Fix Make targets with registry orgs containing slashes Replace '/' with '-' in registry names for Make target names to avoid invalid targets like img.release.publish.ghcr.io/rossigee.provider-gitea where '/' is treated as a path separator. The IMAGE variable remains unchanged for Docker operations. Signed-off-by: Ross Golder --- makelib/imagelight.mk | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/makelib/imagelight.mk b/makelib/imagelight.mk index 5c0a182..701998c 100644 --- a/makelib/imagelight.mk +++ b/makelib/imagelight.mk @@ -90,20 +90,21 @@ img.done: # 1: registry 2: image define repo.targets -img.release.publish.$(1).$(2): +REGISTRY_SANITIZED := $(subst /,-,$(1)) +img.release.publish.$(REGISTRY_SANITIZED).$(2): @$(MAKE) -C $(IMAGE_DIR)/$(2) IMAGE_PLATFORMS=$(IMAGE_PLATFORMS) IMAGE=$(1)/$(2):$(VERSION) img.publish -img.release.publish: img.release.publish.$(1).$(2) +img.release.publish: img.release.publish.$(REGISTRY_SANITIZED).$(2) -img.release.promote.$(1).$(2): +img.release.promote.$(REGISTRY_SANITIZED).$(2): @$(MAKE) -C $(IMAGE_DIR)/$(2) TO_IMAGE=$(1)/$(2):$(CHANNEL) FROM_IMAGE=$(1)/$(2):$(VERSION) img.promote @[ "$(CHANNEL)" = "master" ] || $(MAKE) -C $(IMAGE_DIR)/$(2) TO_IMAGE=$(1)/$(2):$(VERSION)-$(CHANNEL) FROM_IMAGE=$(1)/$(2):$(VERSION) img.promote -img.release.promote: img.release.promote.$(1).$(2) +img.release.promote: img.release.promote.$(REGISTRY_SANITIZED).$(2) -img.release.clean.$(1).$(2): +img.release.clean.$(REGISTRY_SANITIZED).$(2): @[ -z "$$$$(docker images -q $(1)/$(2):$(VERSION))" ] || docker rmi $(1)/$(2):$(VERSION) @[ -z "$$$$(docker images -q $(1)/$(2):$(VERSION)-$(CHANNEL))" ] || docker rmi $(1)/$(2):$(VERSION)-$(CHANNEL) @[ -z "$$$$(docker images -q $(1)/$(2):$(CHANNEL))" ] || docker rmi $(1)/$(2):$(CHANNEL) -img.release.clean: img.release.clean.$(1).$(2) +img.release.clean: img.release.clean.$(REGISTRY_SANITIZED).$(2) endef $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),$(eval $(call repo.targets,$(r),$(i))))) @@ -127,7 +128,7 @@ clean: img.clean img.release.clean # only publish images for main / master and release branches by default RELEASE_BRANCH_FILTER ?= main master release-% ifneq ($(filter $(RELEASE_BRANCH_FILTER),$(BRANCH_NAME)),) -publish.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.publish.$(r).$(i))) +publish.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.publish.$(subst /,-,$(r)).$(i))) endif -promote.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.promote.$(r).$(i))) +promote.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.promote.$(subst /,-,$(r)).$(i)))