-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
115 lines (83 loc) · 2.69 KB
/
Makefile
File metadata and controls
115 lines (83 loc) · 2.69 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
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
CWD=$(shell pwd)
VARIANT ?= ubuntu
PYTHON ?= python3
NUM_ITER ?= 100
distro ?= redhat
GENERATOR_F=./systemd/cloud-init-generator
DS_IDENTIFY=./tools/ds-identify
BENCHMARK=./tools/benchmark.sh
all: check
check: test
style-check: lint
lint:
@$(CWD)/tools/run-lint
unittest: clean_pyc
$(PYTHON) -m pytest -v tests/unittests cloudinit
render-template:
$(PYTHON) ./tools/render-template --variant=$(VARIANT) $(FILE) $(subst .tmpl,,$(FILE))
# from systemd-generator(7) regarding generators:
# "We do recommend C code however, since generators are executed
# synchronously and hence delay the entire boot if they are slow."
#
# Our generator is a shell script. Make it easy to measure the
# generator. This should be monitored for performance regressions
benchmark-generator: FILE=$(GENERATOR_F).tmpl
benchmark-generator: VARIANT="benchmark"
benchmark-generator: export ITER=$(NUM_ITER)
benchmark-generator: render-template
$(BENCHMARK) $(GENERATOR_F)
benchmark-ds-identify: export ITER=$(NUM_ITER)
benchmark-ds-identify:
$(BENCHMARK) $(DS_IDENTIFY)
ci-deps-ubuntu:
@$(PYTHON) $(CWD)/tools/read-dependencies --distro ubuntu --test-distro
ci-deps-centos:
@$(PYTHON) $(CWD)/tools/read-dependencies --distro centos --test-distro
test: unittest
config/cloud.cfg:
$(PYTHON) ./tools/render-template --is-yaml config/cloud.cfg.tmpl config/cloud.cfg
clean_pyc:
@find . -type f -name "*.pyc" -delete
@find . -type d -name __pycache__ -delete
clean_pytest:
rm -rf .cache htmlcov
clean_packaging:
rm -rf srpm cloud_init.egg-info/ \
cloud-init-*.tar.gz \
cloud-init-*.tar.gz.asc \
cloud-init.dsc \
cloud-init_*.build \
cloud-init_*.buildinfo \
cloud-init_*.changes \
cloud-init_*.deb \
cloud-init_*.dsc \
cloud-init_*.orig.tar.gz \
cloud-init_*.tar.xz \
cloud-init_*.upload
clean_release:
rm -rf new-upstream-changes.txt commit.msg
clean: clean_pyc clean_pytest clean_packaging clean_release
rm -rf doc/rtd_html .tox .coverage tags $(GENERATOR_F)
rpm:
$(PYTHON) ./packages/brpm --distro=$(distro)
srpm:
$(PYTHON) ./packages/brpm --srpm --distro=$(distro)
deb:
@which debuild || \
{ echo "Missing devscripts dependency. Install with:"; \
echo sudo apt-get install devscripts; exit 1; }
$(PYTHON) ./packages/bddeb
deb-src:
@which debuild || \
{ echo "Missing devscripts dependency. Install with:"; \
echo sudo apt-get install devscripts; exit 1; }
$(PYTHON) ./packages/bddeb -S -d
doc:
tox -e doc
fmt:
tox -e do_format && tox -e check_format
fmt-tip:
tox -e do_format_tip && tox -e check_format_tip
.PHONY: all check test lint clean rpm srpm deb deb-src clean_pyc
.PHONY: unittest style-check render-template benchmark-generator
.PHONY: clean_pytest clean_packaging clean_release doc