-
Notifications
You must be signed in to change notification settings - Fork 0
/
tasks.py
executable file
·71 lines (53 loc) · 1.46 KB
/
tasks.py
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
import os
from invoke import task
# Run from project root directory
scriptdir = os.path.dirname(os.path.realpath(__file__))
os.chdir(scriptdir)
@task
def format(ctx):
"""Run black and isort"""
for cmd in ("black .", "isort ."):
ctx.run(cmd, echo=True)
@task
def check(ctx):
"""Run flake8"""
for cmd in ("flake8 .",):
ctx.run(cmd, echo=True)
@task
def test(ctx):
"""Run tests"""
for cmd in ("pytest --cov --junitxml=build/reports/tests.xml",):
ctx.run(cmd, echo=True)
@task
def build(ctx):
"""Build"""
for cmd in ("poetry build",):
ctx.run(cmd, echo=True)
@task
def generate_doc(ctx):
"""Generate documentation"""
for cmd in ("sphinx-apidoc -P -f -o docs/_source src/my_project",):
ctx.run(cmd, echo=True)
@task(generate_doc)
def build_doc(ctx):
"""Build documentation"""
for cmd in ("sphinx-build -b html docs dist/docs",):
ctx.run(cmd, echo=True)
@task
def build_exe(ctx):
"""Build documentation"""
for cmd in ("pyinstaller setup/my_project.spec --noconfirm",):
ctx.run(cmd, echo=True)
@task
def build_blender(ctx):
"""Build blender add-on"""
source = "blender_linesplan"
target = "../dist/blender-linesplan.zip"
with ctx.cd("src"):
for cmd in (
"mkdir -p ../dist/",
f"rm -f {target}",
f"rm -rf {source}/__pycache__",
f"zip -r {target} {source}",
):
ctx.run(cmd, echo=True)