aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2020-04-10 22:51:15 -0700
committerMax Resnick <max@ofmax.li>2020-04-10 23:12:57 -0700
commit699c1344fcc57ceab2e84c49311e17047b30c681 (patch)
tree30f038edd2a86db932259dd81de483ee039e53d5 /Makefile
parent54fbd4333809568e19da1cd3697f7a1e08aa51b3 (diff)
downloadgrumpy-containers-699c1344fcc57ceab2e84c49311e17047b30c681.tar.gz
refactor make, change base
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile84
1 files changed, 37 insertions, 47 deletions
diff --git a/Makefile b/Makefile
index fa01d35..c535abd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,56 +1,46 @@
#!/usr/bin/env make
override CONTAINERS = $(patsubst src/%,%,$(wildcard src/*))
+override TARGETS = $(patsubst src/%,%,$(subst targets/,,$(wildcard src/**/targets/*)))
+
+override PUSH_TARGETS = $(addprefix push/,$(TARGETS))
+override BUILD_TARGETS = $(addprefix build/,$(TARGETS))
+
+override BUILD_CONTAINERS = $(addprefix build/,$(CONTAINERS))
+override PUSH_CONTAINERS = $(addprefix push/,$(CONTAINERS))
+
override REGISTRY_URL = registry.gitlab.com/grumps/grumpy-containers
TAG = $(shell cat src/$(@F)/VERSION)
+BASE_NAME = $(notdir $(@D))
-.PHONY: all clean
-
-all: $(CONTAINERS)
- echo "$(CONTAINERS) "
- @echo "completed"
-
-clean:
- rm -rf build tag release
-
-build/base:
- docker build -t $(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F)
- docker build -t $(@F):$(TAG)-sid-slim --build-arg VERSION=sid-slim -f src/$(@F)/Dockerfile src/$(@F)
- mkdir -p build
- echo $(TAG) >> build/$(@F)
- @echo "$(@F) has been built"
-
-build/%:
- docker build -t $(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F)
- mkdir -p build
- echo $(TAG) >> build/$(@F)
- @echo "$(@F) has been built"
-
-tag/base:
- docker tag $(@F):$(TAG) $(REGISTRY_URL)/$(@F):$(TAG)
- docker tag $(@F):$(TAG)-sid-slim $(REGISTRY_URL)/$(@F):$(TAG)-sid-slim
- mkdir -p tag
- echo $(TAG) >> tag/$(@F)
- @echo "$(@F) has been tagged"
-
-tag/%:
- docker tag $(@F):$(TAG) $(REGISTRY_URL)/$(@F):$(TAG)
- mkdir -p tag
- echo $(TAG) >> tag/$(@F)
- @echo "$(@F) has been tagged"
-
-release/base:
- docker push $(REGISTRY_URL)/$(@F):$(TAG)
- docker push $(REGISTRY_URL)/$(@F):$(TAG)-sid-slim
- mkdir -p release
- echo $(TAG) >> release/$(@F)
- @echo "$(@F) has been pushed"
+all: $(BUILD_CONTAINERS) $(BUILD_TARGETS) $(PUSH_CONTAINERS) $(PUSH_TARGETS)
+
+$(BUILD_CONTAINERS): TAG = $(shell cat src/$(@F)/VERSION)
+$(BUILD_CONTAINERS):
+ docker build -t $(REGISTRY_URL)/$(@F):$(TAG) -f src/$(@F)/Dockerfile src/$(@F)
+ @echo "$(@F)/$(TAG) has been built"
-release/%:
+$(PUSH_CONTAINERS): TAG = $(shell cat src/$(@F)/VERSION)
+$(PUSH_CONTAINERS):
docker push $(REGISTRY_URL)/$(@F):$(TAG)
- mkdir -p release
- echo $(TAG) >> release/$(@F)
- @echo "$(@F) has been pushed"
+ @echo "$(@F)/$(TAG) has been pushed"
+
+$(BUILD_TARGETS): TAG = $(shell cat src/$(BASE_NAME)/VERSION)
+$(BUILD_TARGETS):
+ docker build --target $(@F) -t $(REGISTRY_URL)/$(BASE_NAME):$(TAG)-$(@F) -f src/$(BASE_NAME)/Dockerfile src/$(BASE_NAME)
+ @echo "$(BASE_NAME)/$(@F)/$(TAG) has been built"
+
+$(PUSH_TARGETS): TAG = $(shell cat src/$(BASE_NAME)/VERSION)
+$(PUSH_TARGETS):
+ docker push $(REGISTRY_URL)/$(BASE_NAME):$(TAG)-$(@F)
+ @echo "$(BASE_NAME)/$(@F)/$(TAG) has been pushed"
+
+
+build: $(BUILD_CONTAINERS) $(BUILD_TARGETS)
+ @echo "completed builds"
+
+push: $(PUSH_CONTAINERS) $(PUSH_TARGETS)
+ @echo "pushed all containers"
-%: build/% tag/% release/%
- @echo "$(@F) has been completed"
+%: build/% push/%
+ echo "completed $%"