aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 5c26a04a356c383507bbc2ee40a0eb0abd246d49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/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 = public.ecr.aws/s0f9o2k5

TAG = $(shell cat src/$(@F)/VERSION)
BASE_NAME = $(notdir $(@D))

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"

$(PUSH_CONTAINERS): TAG = $(shell cat src/$(@F)/VERSION)
$(PUSH_CONTAINERS):
	docker push $(REGISTRY_URL)/$(@F):$(TAG)
	@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)
	docker build --target $(@F) -t $(REGISTRY_URL)/$(BASE_NAME):$(@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)
	docker push $(REGISTRY_URL)/$(BASE_NAME):$(@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/% push/%
	echo "completed $%"