forked from att-comdev/armada
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
150 lines (120 loc) · 3.17 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Copyright 2018 AT&T Intellectual Property. All other rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# APP INFO
DOCKER_REGISTRY ?= quay.io
IMAGE_PREFIX ?= attcomdev
IMAGE_NAME ?= armada
IMAGE_TAG ?= latest
HELM ?= helm
LABEL ?= commit-id
PYTHON = python3
CHART = armada
IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}
# VERSION INFO
GIT_COMMIT = $(shell git rev-parse HEAD)
GIT_SHA = $(shell git rev-parse --short HEAD)
GIT_TAG = $(shell git describe --tags --abbrev=0 --exact-match 2>/dev/null)
GIT_DIRTY = $(shell test -n "`git status --porcelain`" && echo "dirty" || echo "clean")
ifdef VERSION
DOCKER_VERSION = $(VERSION)
endif
SHELL = /bin/bash
info:
@echo "Version: ${VERSION}"
@echo "Git Tag: ${GIT_TAG}"
@echo "Git Commit: ${GIT_COMMIT}"
@echo "Git Tree State: ${GIT_DIRTY}"
@echo "Docker Version: ${DOCKER_VERSION}"
@echo "Registry: ${DOCKER_REGISTRY}"
.PHONY: all
all: lint charts images
.PHONY: build
build: bootstrap
$(PYTHON) setup.py install
.PHONY: bootstrap
bootstrap:
pip install -r requirements.txt
.PHONY: bootstrap-all
bootstrap-all: bootstrap
pip install -r test-requirements.txt
.PHONY: check-docker
check-docker:
@if [ -z $$(which docker) ]; then \
echo "Missing \`docker\` client which is required for development"; \
exit 2; \
fi
.PHONY: check-tox
check-tox:
@if [ -z $$(which tox) ]; then \
echo "Missing \`tox\` client which is required for development"; \
exit 2; \
fi
.PHONY: images
images: check-docker build_armada
.PHONY: dry-run
dry-run: clean
tools/helm_tk.sh $(HELM)
$(HELM) dep up charts/$(CHART)
$(HELM) template charts/$(CHART)
.PHONY: docs
docs: build_docs
.PHONY: run_images
run_images: run_armada
.PHONY: run_armada
run_armada: build_armada
./tools/armada_image_run.sh $(IMAGE)
.PHONY: build_docs
build_docs:
tox -e docs
.PHONY: build_armada
build_armada:
docker build -t $(IMAGE) --label $(LABEL) .
# make tools
.PHONY: protoc
protoc:
@tools/helm-hapi.sh
.PHONY: clean
clean:
rm -rf build
# testing checks
.PHONY: tests
tests: check-tox
tox
.PHONY: test-all
test-all: check-tox helm_lint
tox
.PHONY: test-unit
test-unit: check-tox
tox -e py35
.PHONY: test-coverage
test-coverage: check-tox
tox -e coverage
.PHONY: test-bandit
test-bandit: check-tox
tox -e bandit
# style checks
.PHONY: lint
lint: test-pep8 helm_lint
.PHONY: test-pep8
test-pep8: check-tox
tox -e pep8
.PHONY: helm-lint
helm_lint:
@tools/helm_tk.sh $(HELM)
$(HELM) dep up charts/$(CHART)
$(HELM) lint charts/$(CHART)
.PHONY: charts
charts: clean
$(HELM) dep up charts/$(CHART)
$(HELM) package charts/$(CHART)