Skip to content

Commit d4afb65

Browse files
committed
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 <ross@golder.org>
1 parent daf2a7c commit d4afb65

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

makelib/imagelight.mk

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,20 +90,21 @@ img.done:
9090

9191
# 1: registry 2: image
9292
define repo.targets
93-
img.release.publish.$(1).$(2):
93+
REGISTRY_SANITIZED := $(subst /,-,$(1))
94+
img.release.publish.$(REGISTRY_SANITIZED).$(2):
9495
@$(MAKE) -C $(IMAGE_DIR)/$(2) IMAGE_PLATFORMS=$(IMAGE_PLATFORMS) IMAGE=$(1)/$(2):$(VERSION) img.publish
95-
img.release.publish: img.release.publish.$(1).$(2)
96+
img.release.publish: img.release.publish.$(REGISTRY_SANITIZED).$(2)
9697

97-
img.release.promote.$(1).$(2):
98+
img.release.promote.$(REGISTRY_SANITIZED).$(2):
9899
@$(MAKE) -C $(IMAGE_DIR)/$(2) TO_IMAGE=$(1)/$(2):$(CHANNEL) FROM_IMAGE=$(1)/$(2):$(VERSION) img.promote
99100
@[ "$(CHANNEL)" = "master" ] || $(MAKE) -C $(IMAGE_DIR)/$(2) TO_IMAGE=$(1)/$(2):$(VERSION)-$(CHANNEL) FROM_IMAGE=$(1)/$(2):$(VERSION) img.promote
100-
img.release.promote: img.release.promote.$(1).$(2)
101+
img.release.promote: img.release.promote.$(REGISTRY_SANITIZED).$(2)
101102

102-
img.release.clean.$(1).$(2):
103+
img.release.clean.$(REGISTRY_SANITIZED).$(2):
103104
@[ -z "$$$$(docker images -q $(1)/$(2):$(VERSION))" ] || docker rmi $(1)/$(2):$(VERSION)
104105
@[ -z "$$$$(docker images -q $(1)/$(2):$(VERSION)-$(CHANNEL))" ] || docker rmi $(1)/$(2):$(VERSION)-$(CHANNEL)
105106
@[ -z "$$$$(docker images -q $(1)/$(2):$(CHANNEL))" ] || docker rmi $(1)/$(2):$(CHANNEL)
106-
img.release.clean: img.release.clean.$(1).$(2)
107+
img.release.clean: img.release.clean.$(REGISTRY_SANITIZED).$(2)
107108
endef
108109
$(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),$(eval $(call repo.targets,$(r),$(i)))))
109110

@@ -127,7 +128,7 @@ clean: img.clean img.release.clean
127128
# only publish images for main / master and release branches by default
128129
RELEASE_BRANCH_FILTER ?= main master release-%
129130
ifneq ($(filter $(RELEASE_BRANCH_FILTER),$(BRANCH_NAME)),)
130-
publish.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.publish.$(r).$(i)))
131+
publish.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.publish.$(subst /,-,$(r)).$(i)))
131132
endif
132133

133-
promote.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.promote.$(r).$(i)))
134+
promote.artifacts: $(foreach r,$(REGISTRY_ORGS), $(foreach i,$(IMAGES),img.release.promote.$(subst /,-,$(r)).$(i)))

0 commit comments

Comments
 (0)