-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
137 lines (113 loc) · 2.97 KB
/
Taskfile.yml
File metadata and controls
137 lines (113 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
129
130
131
132
133
134
135
136
137
version: '3'
vars:
MODULE_NAME: api_server.main
tasks:
setup:
desc: Create a Python virtual environment
cmds:
- test -d .venv || uv venv
install:
desc: Install the package and development dependencies
deps: [setup]
cmds:
- uv pip install --python .venv/bin/python -e '.[dev]'
clean:
desc: Clean build artifacts
cmds:
- rm -rf build/ dist/ *.egg-info .pytest_cache .ruff_cache __pycache__ .coverage
- find . -type d -name "__pycache__" -exec rm -rf {} +
- find . -type d -name "*.egg-info" -exec rm -rf {} +
clean:all:
desc: Clean all artifacts including virtual environment
cmds:
- task: clean
- rm -rf .venv
format:
desc: Format code using ruff
cmds:
- .venv/bin/ruff format .
lint:
desc: Run ruff linter
cmds:
- .venv/bin/ruff check --fix .
test:
desc: Run tests with pytest
cmds:
- .venv/bin/python -m pytest {{.CLI_ARGS}}
test:cov:
desc: Run tests with coverage report
cmds:
- .venv/bin/python -m pytest --cov=src --cov-report=term-missing {{.CLI_ARGS}}
check:
desc: Run all code quality checks, excluding tests
cmds:
- task: format
- task: lint
build:
desc: Build the package
cmds:
- uv pip install --python .venv/bin/python build
- .venv/bin/python -m build
db:migrate:
desc: Generate a new migration
cmds:
- .venv/bin/alembic revision --autogenerate -m "{{.CLI_ARGS}}"
db:upgrade:
desc: Run all pending migrations
cmds:
- .venv/bin/alembic upgrade head
db:downgrade:
desc: Rollback the last migration
cmds:
- .venv/bin/alembic downgrade -1
db:reset:
desc: Reset the database (WARNING - This will delete all data)
cmds:
- task: db:upgrade
run:
desc: Run the application
dotenv: ['.env']
cmds:
- .venv/bin/python -m {{.MODULE_NAME}} {{.CLI_ARGS}}
run:cli:
desc: Run the admin CLI (e.g. task run:cli -- db check)
dotenv: ['.env']
cmds:
- .venv/bin/python -m api_server.cli {{.CLI_ARGS}}
fct:
desc: Format, check, test
cmds:
- task: format
- task: check
- task: test
rebuild:all:
desc: Clean, install, format/check/test, build, docker
cmds:
- task: clean:all
- task: install
- task: fct
- task: build
- task: docker:build
pre-commit:install:
desc: Install pre-commit hooks
deps: [setup]
cmds:
- .venv/bin/pre-commit install --install-hooks
pre-commit:update:
desc: Update pre-commit hooks
deps: [setup]
cmds:
- .venv/bin/pre-commit autoupdate
pre-commit:run:
desc: Run pre-commit hooks on all files
deps: [setup]
cmds:
- .venv/bin/pre-commit run --all-files
pre-commit:uninstall:
desc: Uninstall pre-commit hooks
deps: [setup]
cmds:
- .venv/bin/pre-commit uninstall
docker:build:
desc: Build Docker image for api-server
cmd: docker build -t api-server .