-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (55 loc) · 2.65 KB
/
Makefile
File metadata and controls
68 lines (55 loc) · 2.65 KB
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
IMAGE_REPOSITORY = quay.io/kubermatic-labs
APPLICATION_NAME = training-application
BUILD_VERSION = 4.0.0
BUILD_VERSION_A = ${BUILD_VERSION}-A
BUILD_VERSION_B = ${BUILD_VERSION}-B
BUILD_VERSION_DISTROLESS = ${BUILD_VERSION}-distroless
HELM_CHART_VERSION = 1.0.1
.PHONY: update-dependencies
update-dependencies:
cd src && go get -u
cd src && go mod tidy
.PHONY: lint
lint:
# cd src && golangci-lint run --timeout=5m -v
cd src && golangci-lint run --timeout=5m
.PHONY: build
build:
cd src && go build -o ../${APPLICATION_NAME} .
.PHONY: run
run: build
./${APPLICATION_NAME}
.PHONY: docker-lint
docker-lint:
hadolint docker/Dockerfile
.PHONY: docker-lint-all
docker-lint-all:
hadolint docker/Dockerfile
hadolint docker/Dockerfile-A
hadolint docker/Dockerfile-B --ignore DL3025
hadolint docker/Dockerfile-distroless --ignore DL3006
.PHONY: docker-build
docker-build: build docker-lint
docker build -f docker/Dockerfile -t ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION} .
.PHONY: docker-run
docker-run: docker-build
docker run -it --rm -p 8080:8080 -m=10m --cpus=".5" --name ${APPLICATION_NAME} ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION}
.PHONY: docker-build-all
docker-build-all: lint docker-lint
docker build -f docker/Dockerfile -t ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION} .
docker build -f docker/Dockerfile-A -t ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_A} .
docker build -f docker/Dockerfile-B -t ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_B} .
docker build -f docker/Dockerfile-distroless -t ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_DISTROLESS} .
.PHONY: docker-push
docker-push:
docker buildx build --push --platform linux/arm64,linux/amd64 -f docker/Dockerfile --tag ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION} .
.PHONY: docker-push-all
docker-push-all:
docker buildx build --push --platform linux/arm64,linux/amd64 -f docker/Dockerfile --tag ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION} .
docker buildx build --push --platform linux/arm64,linux/amd64 -f docker/Dockerfile-A --tag ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_A} .
docker buildx build --push --platform linux/arm64,linux/amd64 -f docker/Dockerfile-B --tag ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_B} .
docker buildx build --push --platform linux/arm64,linux/amd64 -f docker/Dockerfile-distroless --tag ${IMAGE_REPOSITORY}/${APPLICATION_NAME}:${BUILD_VERSION_DISTROLESS} .
.PHONY: helm-push
helm-push:
helm package ./helm-chart --version ${HELM_CHART_VERSION}
helm push --debug training-application-${HELM_CHART_VERSION}.tgz oci://quay.io/kubermatic-labs/helm-charts/