-
Notifications
You must be signed in to change notification settings - Fork 0
/
tasks.py
46 lines (35 loc) · 1.07 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
# Copyright The mirrorshades Contributors.
# SPDX-License-Identifier: Apache-2.0
from invoke import task
@task
def install(c):
"""Install the project locally"""
c.run("pip install .")
@task
def build(c):
"""Build the project"""
c.run("python3 -m build .")
@task
def clean(c):
"""Remove build output"""
c.run("rm -rf build dist src/*.egg-info")
@task
def test(c):
"""Check code correctness"""
c.run("pre-commit run -a")
@task
def release(c, version):
"""Release a version of the project"""
clean(c)
c.run(
f"sed -i 's/^\\(__version__ =\\).*$/\\1 \"{version}\"/' "
"src/mirrorshades/__init__.py"
)
c.run(f"git commit -s -m 'Release {version}' src/mirrorshades/__init__.py")
build(c)
c.run(f"echo mirrorshades {version} > dist/RELEASE_NOTES.txt")
c.run(f"markdown-extract -n '^{version}' ChangeLog.md >> dist/RELEASE_NOTES.txt")
c.run(f"git tag -a -F dist/RELEASE_NOTES.txt 'v{version}' HEAD")
with c.cd("dist"):
c.run("sha256sum * > SHA256SUMS")
c.run("gpg --detach-sign -a SHA256SUMS")