diff options
| author | Max Resnick <max@ofmax.li> | 2020-04-10 22:51:15 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2020-04-10 23:12:57 -0700 |
| commit | 699c1344fcc57ceab2e84c49311e17047b30c681 (patch) | |
| tree | 30f038edd2a86db932259dd81de483ee039e53d5 /Makefile | |
| parent | 54fbd4333809568e19da1cd3697f7a1e08aa51b3 (diff) | |
| download | grumpy-containers-699c1344fcc57ceab2e84c49311e17047b30c681.tar.gz | |
refactor make, change base
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 84 |
1 files changed, 37 insertions, 47 deletions
@@ -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 $%" |