-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
80 lines (67 loc) · 3.72 KB
/
Makefile
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
.PHONY: help build upload upload_images
.DEFAULT_GOAL := help
SHELL = /bin/sh
BUILD_DIR = build
ARCHITECTURES = amd64 arm64 arm/v6 arm/v7 s390x ppc64le
OPERATING_SYSTEM ?= vm370
BRANCH = $(shell git branch --show-current)
ifeq ($(BRANCH),main)
IMAGE_TAG = stable
else ifeq ($(BRANCH),develop)
IMAGE_TAG = latest
else
IMAGE_TAG = $(BRANCH)
endif
define PRINT_HELP_PYSCRIPT
import re, sys
for line in sys.stdin:
match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
if match:
target, help = match.groups()
print("%-20s %s" % (target, help))
endef
export PRINT_HELP_PYSCRIPT
ifeq ($(OPERATING_SYSTEM),mvstk5)
distribution: ## Downloads local distribution files
@echo "Dowloading distribution files"
wget --no-check-certificate -c --directory-prefix ${BUILD_DIR} https://www.prince-webdesign.nl/images/downloads/mvs-tk5.zip
wget --no-check-certificate -c --directory-prefix ${BUILD_DIR} https://www.prince-webdesign.nl/images/downloads/srccbt_catlg.txt
wget --no-check-certificate -c --directory-prefix ${BUILD_DIR} https://www.prince-webdesign.nl/images/downloads/srccbt.zip
@echo "Decompressing distribution files"
unzip -o ${BUILD_DIR}/mvs-tk5.zip -d ${BUILD_DIR}
unzip -o ${BUILD_DIR}/srccbt.zip -d ${BUILD_DIR}/mvs-tk5
else
distribution:
@echo "Distribution will be downloaded by docker."
endif
help: ## Displays this message.
@echo "Please use \`make <target>\` where <target> is one of:"
@python3 -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
${USER}-base-${IMAGE_TAG}-amd64.tar: Dockerfile-hyperion-base
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64 --platform=linux/amd64 --file Dockerfile-hyperion-base .
${USER}-${OPERATING_SYSTEM}-${IMAGE_TAG}-amd64.tar: Dockerfile-${OPERATING_SYSTEM}
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64 --platform=linux/amd64 --file Dockerfile-${OPERATING_SYSTEM} .
docker save -o ${BUILD_DIR}/${USER}-${OPERATING_SYSTEM}-${IMAGE_TAG}-amd64.tar ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64
build: distribution ## Builds the Docker images
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64 --platform=linux/amd64 --file ./Dockerfile-${OPERATING_SYSTEM} .
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-arm64 --platform=linux/arm64 --file ./Dockerfile-${OPERATING_SYSTEM} .
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv6 --platform=linux/arm/v6 --file ./Dockerfile-${OPERATING_SYSTEM} .
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv7 --platform=linux/arm/v7 --file ./Dockerfile-${OPERATING_SYSTEM} .
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-s390x --platform=linux/s390x --file ./Dockerfile-${OPERATING_SYSTEM} .
docker build -t ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-ppc64le --platform=linux/ppc64le --file ./Dockerfile-${OPERATING_SYSTEM} .
upload_images: ## Uploads the local docker images
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-arm64
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv6
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv7
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-s390x
docker image push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-ppc64le
upload: upload_images ## Uploads the manifest
docker manifest create ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG} \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64 \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-amd64 \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv6 \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-armv7 \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-s390x \
--amend ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}-ppc64le
docker manifest push ${USER}/${OPERATING_SYSTEM}:${IMAGE_TAG}