forked from kiwitcms/Kiwi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
138 lines (106 loc) · 3.65 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
default: help
PATH_TO_SITE_PACKAGES = $(shell python -c 'from distutils.sysconfig import get_python_lib; print(get_python_lib())')
FLAKE8_EXCLUDE=.git
.PHONY: flake8
flake8:
@flake8 --exclude=$(FLAKE8_EXCLUDE) tcms *.py kiwi_lint
DJANGO_SETTINGS_MODULE="tcms.settings.test"
ifeq ($(TEST_DB),MySQL)
DJANGO_SETTINGS_MODULE="tcms.settings.test.mariadb"
endif
ifeq ($(TEST_DB),MariaDB)
DJANGO_SETTINGS_MODULE="tcms.settings.test.mariadb"
endif
ifeq ($(TEST_DB),Postgres)
DJANGO_SETTINGS_MODULE="tcms.settings.test.postgresql"
endif
.PHONY: test
test:
if [ "$$TEST_DB" == "all" ]; then \
for DB in SQLite MySQL Postgres MariaDB; do \
TEST_DB=$$DB make test; \
done; \
else \
PYTHONWARNINGS=d coverage run --source='.' ./manage.py test --noinput --settings=$(DJANGO_SETTINGS_MODULE); \
fi
.PHONY: l10n-test
l10n-test:
./manage.py compilemessages
@make test
# test for missing migrations
# https://stackoverflow.com/questions/54177838/
.PHONY: test_for_missing_migrations
test_for_missing_migrations:
./manage.py migrate --settings=$(DJANGO_SETTINGS_MODULE)
./manage.py makemigrations --check --settings=$(DJANGO_SETTINGS_MODULE)
.PHONY: check
check: flake8 test
.PHONY: pylint
pylint:
pylint -d missing-docstring *.py kiwi_lint/
PYTHONPATH=.:./tcms/ DJANGO_SETTINGS_MODULE=$(DJANGO_SETTINGS_MODULE) pylint --load-plugins=pylint_django --load-plugins=kiwi_lint -d missing-docstring -d duplicate-code tcms/
.PHONY: bandit
bandit:
bandit -r *.py tcms/ kiwi_lint/
.PHONY: bandit_site_packages
bandit_site_packages:
if [ -d "$(PATH_TO_SITE_PACKAGES)" ]; then \
bandit -a vuln -r $(PATH_TO_SITE_PACKAGES); \
fi
.PHONY: docker-image
docker-image:
sudo rm -rf dist/
docker build -t kiwitcms/buildroot -f Dockerfile.buildroot .
docker run --rm --security-opt label=disable \
-v `pwd`:/host --entrypoint /bin/cp kiwitcms/buildroot \
-r /Kiwi/dist/ /host/
docker run --rm --security-opt label=disable \
-v `pwd`:/host --entrypoint /bin/cp kiwitcms/buildroot \
-r /venv /host/dist/
docker build -t kiwitcms/kiwi:latest .
.PHONY: test-docker-image
test-docker-image: docker-image
sudo ./tests/runner.sh
.PHONY: docs
docs:
make -C docs/ html
# checks if all of our documentation/source files are under git!
# this is necessary because ReadTheDocs doesn't call `make' but uses
# conf.py and builds the documentation itself! Since we have some
# auto-generated API docs we want to make sure that we didn't forget
# to regenerate them after code changes!
.PHONY: check-docs-source-in-git
check-docs-source-in-git: docs
git status
if [ -n "$$(git status --short)" ]; then \
git diff; \
echo "FAIL: unmerged docs changes. Pobably auto-generated!"; \
echo "HELP: execute 'make docs' and commit to fix this"; \
exit 1; \
fi
.PHONY: doc8
doc8:
doc8 docs/source
.PHONY: help
help:
@echo 'Usage: make [command]'
@echo ''
@echo 'Available commands:'
@echo ''
@echo ' flake8 - Check Python code style throughout whole source code tree'
@echo ' check - Run all tests.'
@echo ' build-for-pypi - Build tarballs and wheels for PyPI'
@echo ' docker-image - Build Docker image'
@echo ' help - Show this help message and exit. Default if no command is given'
# only necessary b/c in Travis we call `make smt`
.PHONY: coverity
coverity:
@echo 'Everything is handled by the Coverity add-on in Travis'
.PHONY: build-for-pypi
build-for-pypi:
./tests/check-build
.PHONY: messages
messages:
./manage.py makemessages --locale en --no-obsolete --ignore "test*.py"
git checkout tcms/locale/eo_UY/
ls tcms/locale/en/LC_MESSAGES/*.po | xargs -n 1 -I @ msgattrib -o @ --no-fuzzy @