-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
128 lines (112 loc) · 2.97 KB
/
Taskfile.yml
File metadata and controls
128 lines (112 loc) · 2.97 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
116
117
118
119
120
121
122
123
124
125
126
127
128
version: "3"
name: taskfile
vars:
PYTHON: "{{.PWD}}/.venv/bin/python"
PIP: "{{.PWD}}/.venv/bin/pip"
PYTEST: "{{.PWD}}/.venv/bin/pytest"
RUFF: "{{.PWD}}/.venv/bin/ruff"
PYQUAL: "{{.PWD}}/.venv/bin/pyqual"
tasks:
_verify-venv:
desc: Verify virtual environment exists
internal: true
cmds:
- |
if [ ! -f "{{.PYTHON}}" ]; then
echo "❌ venv not found. Run: task install"
exit 1
fi
silent: true
_verify-deps:
desc: Verify dependencies are installed
internal: true
deps: [_verify-venv]
cmds:
- |
if ! {{.PYTHON}} -c "import pyqual" 2>/dev/null; then
echo "❌ pyqual not installed. Run: task install"
exit 1
fi
silent: true
_ensure-venv:
desc: Ensure virtual environment exists
internal: true
cmds:
- |
if [ ! -d "{{.PWD}}/.venv" ]; then
echo "Creating virtual environment..."
python3 -m venv {{.PWD}}/.venv
{{.PIP}} install --upgrade pip
{{.PIP}} install -e ".[dev]"
fi
silent: true
install:
desc: Install dependencies in venv
deps: [_ensure-venv]
cmds:
- "{{.PIP}} install -e .[dev]"
test:
desc: Run all tests
deps: [_verify-deps]
cmds:
- "{{.PYTEST}} tests/ -v"
test:fast:
desc: Run tests (skip slow)
deps: [_verify-deps]
cmds:
- "{{.PYTEST}} tests/ -v -m 'not slow'"
lint:
desc: Run ruff linter
deps: [_verify-deps]
cmds:
- "{{.RUFF}} check src/ tests/"
fmt:
desc: Run ruff formatter
deps: [_verify-deps]
cmds:
- "{{.RUFF}} format src/ tests/"
fmt:check:
desc: Check formatting
deps: [_verify-deps]
cmds:
- "{{.RUFF}} format --check src/ tests/"
pyqual:
desc: Run pyqual quality analysis
deps: [_verify-deps]
cmds:
- "{{.PYQUAL}} run"
pyqual:fix:
desc: Run pyqual with automatic fixes
deps: [_verify-deps]
cmds:
- "{{.PYQUAL}} run --fix"
quality:
desc: Full quality check (pyqual + lint + test)
deps: [_verify-deps]
cmds:
- task: pyqual
- task: fmt:check
- task: lint
- task: test:fast
build:
desc: Build package
deps: [_ensure-venv]
cmds:
- "{{.PYTHON}} -m build"
clean:
desc: Clean build artifacts
cmds:
- rm -rf build/ dist/ *.egg-info .pytest_cache .ruff_cache
- find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
demo:
desc: Simple demo task
cmds:
- echo "Taskfile is ready! 🚀"
- echo "Available commands:"
- echo " task pyqual - Run pyqual quality analysis"
- echo " task pyqual:fix - Run pyqual with automatic fixes"
- echo " task quality - Full quality check (pyqual + lint + test)"
- echo " task test - Run tests"
- echo " task lint - Run linter"
- echo " task fmt - Format code"
- echo " task install - Install dependencies"