-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTaskfile.yml
148 lines (129 loc) · 3.78 KB
/
Taskfile.yml
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
138
139
140
141
142
143
144
145
146
147
148
---
# https://taskfile.dev
version: "3"
env:
PY_PM: poetry
PY_RUNNER: poetry run
PYTESTARGS: -vvl --workers auto
BLACKARGS: --line-length 128 --check --diff
tasks:
default:
cmds:
- cmd: task -l
#############################################################################
#
# Environment Setup
#
#############################################################################
setup:
desc: Setup environment
cmds:
- task: setup-python-env
- task: setup-pre-commit
setup-python-env:
desc: Setup Python environment
cmds:
- cmd: $PY_PM update
setup-pre-commit:
desc: Setup Pre-Commit environment
cmds:
- cmd: $PY_RUNNER pre-commit install
- cmd: $PY_RUNNER pre-commit install --install-hooks
- cmd: $PY_RUNNER pre-commit install --hook-type commit-msg
- cmd: $PY_RUNNER pre-commit install --hook-type pre-push
- task: ansible-init
ansible-init:
desc: Setup ansible
cmds:
- cmd: echo "No Ansible support"
#############################################################################
#
# Release management
#
#############################################################################
release:
desc: Release MINOR version bump
cmds:
- cmd: $PY_RUNNER cz bump --check-consistency --increment MINOR --no-verify
release-major:
desc: Release MAJOR version bump
cmds:
- cmd: $PY_RUNNER cz bump --check-consistency --increment MAJOR --no-verify
release-patch:
desc: Release PATCH version bump
cmds:
- cmd: $PY_RUNNER cz bump --check-consistency --increment PATCH --no-verify
publish:
desc: Push to remote
cmds:
- cmd: git push -v --progress
- cmd: git push -v --progress --tags
#############################################################################
#
# Cookies options
#
#############################################################################
cruft-update:
desc: Update the cookies
cmds:
- cmd: git stash push -m cruft-update
- cmd: $PY_RUNNER cruft update --allow-untracked-files --skip-apply-ask
- cmd: if test -d control; then pushd control >/dev/null && task init && popd; fi
- cmd: if test -d deployment; then pushd deployment >/dev/null && task init && popd; fi
- task: prettier
- cmd: $PY_RUNNER pre-commit run -a terraform_docs
- cmd: git stash list | grep -q cruft-update && git stash pop >/dev/null || true
cruft-push:
desc: Push the cookies
cmds:
- cmd: 'git ci -a -m "chore(cruft): update to latest cruft state"'
cruft-reset:
desc: Reset cruft
cmds:
- cmd: cruft diff | git apply
#############################################################################
#
# Checking and Linting
#
#############################################################################
prettier:
desc: Run prettier
cmds:
- cmd: prettier -w .
check:
desc: Run pre-commit
deps:
- lint
lint:
desc: Run pre-commit
deps:
- linting
linting:
desc: Run pre-commit
cmds:
- task: pre-commit
pre-commit:
desc: Run pre-commit
cmds:
- cmd: $PY_RUNNER pre-commit run --hook-stage commit --all-files
- cmd: $PY_RUNNER pre-commit run --hook-stage push --all-files
- cmd: $PY_RUNNER pre-commit run --hook-stage manual --all-files
test:
desc: Run pytest
deps:
- pytest
pytest:
desc: Run pytest
cmds:
- cmd: $PY_RUNNER pytest $PYTESTARGS tests
#############################################################################
#
# Custom options
#
#############################################################################
clean:
desc: Clean up
cmds:
- cmd: rm -rf dist
- cmd: rm -rf tmp
- cmd: git clean -fdx