-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
154 lines (135 loc) · 3.79 KB
/
Taskfile.yml
File metadata and controls
154 lines (135 loc) · 3.79 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
version: '3'
includes:
android:
taskfile: ./android/Taskfile.yml
dir: ./android
androidctld:
taskfile: ./androidctld/Taskfile.yml
dir: .
androidctl:
taskfile: ./androidctl/Taskfile.yml
dir: .
contracts:
taskfile: ./contracts/Taskfile.yml
dir: .
tasks:
python:
internal: true
requires:
vars: [PYTHON_ARGS]
cmds:
- cmd: python {{.PYTHON_ARGS}}
platforms: [windows]
- cmd: python {{.PYTHON_ARGS}}
platforms: [darwin, linux]
default:
desc: List available tasks
cmds:
- task --list
test:
desc: Run tests across all modules
deps:
- task: android:test
- task: androidctld:test
- task: androidctl:test
- task: contracts:test
test:extended:
desc: Run extended tests outside the normal local loop
deps:
- task: androidctl:e2e
lint:
desc: Run linters and static checks across all modules
deps:
- task: android:lint
- task: androidctld:lint
- task: androidctl:lint
- task: contracts:lint
format:
desc: Auto-format code across all modules
deps:
- task: android:format
- task: androidctld:format
- task: androidctl:format
- task: contracts:format
quality:
desc: Run full quality gates across all modules
deps:
- task: android:quality
- task: androidctld:quality
- task: androidctl:quality
- task: contracts:quality
release:version-check:
desc: Check release version lockstep across repo surfaces
cmds:
- task: python
vars:
PYTHON_ARGS: -m tools.release.check_version_lockstep
release:test:
desc: Run release tooling tests
cmds:
- task: python
vars:
PYTHON_ARGS: -m pytest tools/release/tests
release:lint:
desc: Run release tooling lint and formatting checks
cmds:
- task: python
vars:
PYTHON_ARGS: -m ruff check tools/release
- task: python
vars:
PYTHON_ARGS: -m black --check tools/release
release:format:
desc: Auto-format release tooling
cmds:
- task: python
vars:
PYTHON_ARGS: -m ruff check --fix tools/release
- task: python
vars:
PYTHON_ARGS: -m black tools/release
release:quality:
desc: Run release tooling quality gate
cmds:
- task: release:lint
- task: release:test
- task: release:version-check
release:android:prepare:
desc: Build, stage, checksum, verify, and print dry-run upload commands for Android release assets
cmds:
- task: release:version-check
- task: android:release:checksum
- task: android:release:verify
- task: android:release:upload:dry-run
release:android:verify:
desc: Re-run Android staged asset verification and regenerate verification logs
cmds:
- task: release:version-check
- task: android:release:verify
release:pypi:build:
desc: Build local PyPI sdists and wheels with the signed Android APK packaged into androidctl
cmds:
- task: release:version-check
- task: android:release:checksum
- task: release:android:verify
- task: python
vars:
PYTHON_ARGS: -m tools.release.pypi_release build
release:pypi:check:
desc: Run twine check for the built local PyPI artifacts
cmds:
- task: release:pypi:build
- task: python
vars:
PYTHON_ARGS: -m tools.release.pypi_release check
release:pypi:install:
desc: Install the built androidctl wheel into a throwaway venv
cmds:
- task: release:pypi:check
- task: python
vars:
PYTHON_ARGS: -m tools.release.pypi_release install
release:pypi:prepare:
desc: Build, check, and install the local PyPI candidate
cmds:
- task: release:pypi:install