/
Justfile
72 lines (56 loc) · 1.8 KB
/
Justfile
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
package := 'blacksmith'
default_test_suite := 'tests/unittests'
install:
poetry install
doc:
cd docs && poetry run make html
xdg-open docs/build/html/index.html
cleandoc:
cd docs && poetry run make clean
gensync:
poetry run python scripts/gen_unasync.py
poetry run isort src/blacksmith/middleware/_sync
poetry run black src/blacksmith/middleware/_sync
poetry run isort src/blacksmith/sd/_sync
poetry run black src/blacksmith/sd/_sync
poetry run isort src/blacksmith/service/_sync
poetry run black src/blacksmith/service/_sync
poetry run isort tests/unittests/_sync
poetry run black tests/unittests/_sync
lint:
poetry run flake8 && echo "$(tput setaf 10)Success: no lint issue$(tput setaf 7)"
test: lint mypy unittest functest
unittest test_suite=default_test_suite:
poetry run pytest -sxv {{test_suite}}
lf:
poetry run pytest -sxvvv --lf
cov test_suite=default_test_suite:
rm -f .coverage
rm -rf htmlcov
poetry run pytest --cov-report=html --cov={{package}} {{test_suite}}
xdg-open htmlcov/index.html
functest:
poetry run pytest -sxv tests/functionals
mypy:
poetry run mypy src/ tests/
black:
poetry run isort .
poetry run black .
gh-pages:
poetry export --with dev -f requirements.txt -o docs/requirements.txt --without-hashes
release major_minor_patch: gensync test gh-pages && changelog
poetry version {{major_minor_patch}}
poetry install
changelog:
poetry run python scripts/write_changelog.py
cat CHANGELOG.rst >> CHANGELOG.rst.new
rm CHANGELOG.rst
mv CHANGELOG.rst.new CHANGELOG.rst
$EDITOR CHANGELOG.rst
publish:
git commit -am "Release $(poetry version -s)"
poetry build
poetry publish
git push
git tag "$(poetry version -s)"
git push origin "$(poetry version -s)"