forked from kiwitcms/Kiwi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
125 lines (95 loc) · 3.14 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
default: help
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=. 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 "/home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/" ]; then \
bandit -a vuln -r /home/travis/virtualenv/python3.6.3/lib/python3.6/site-packages/; \
fi
.PHONY: docker-image
docker-image:
find -name "*.pyc" -delete
./tests/check-build
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: 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 --no-obsolete --ignore "test*.py"
ls tcms/locale/*/LC_MESSAGES/*.po | xargs -n 1 -I @ msgattrib -o @ --no-fuzzy @