Files
urh/data/release.py
Dr. Johannes Pohl e0f94fa105 blacken version.py
2024-01-14 09:43:20 +01:00

110 lines
3.1 KiB
Python

import fileinput
import os
import shutil
import sys
import tempfile
from subprocess import call, check_output
def cleanup():
"""
Remove all cache directories
:return:
"""
script_dir = (
os.path.dirname(__file__)
if not os.path.islink(__file__)
else os.path.dirname(os.readlink(__file__))
)
script_dir = os.path.realpath(os.path.join(script_dir, ".."))
shutil.rmtree(os.path.join(script_dir, "dist"), ignore_errors=True)
shutil.rmtree(os.path.join(script_dir, "tmp"), ignore_errors=True)
shutil.rmtree(os.path.join(script_dir, "urh.egg-info"), ignore_errors=True)
shutil.rmtree(os.path.join(script_dir, "src", "urh.egg-info"), ignore_errors=True)
shutil.rmtree(os.path.join(script_dir, "src", "urh", "tmp"), ignore_errors=True)
def release():
script_dir = (
os.path.dirname(__file__)
if not os.path.islink(__file__)
else os.path.dirname(os.readlink(__file__))
)
script_dir = os.path.realpath(os.path.join(script_dir, ".."))
os.chdir(script_dir)
current_branch = (
check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"])
.decode("UTF-8")
.strip()
)
if current_branch != "master":
print("You can only release from master!")
sys.exit(1)
open(os.path.join(tempfile.gettempdir(), "urh_releasing"), "w").close()
from src.urh import version
version_file = os.path.realpath(
os.path.join(script_dir, "src", "urh", "version.py")
)
cur_version = version.VERSION
numbers = cur_version.split(".")
numbers[-1] = str(int(numbers[-1]) + 1)
cur_version = ".".join(numbers)
for line in fileinput.input(version_file, inplace=True):
if line.startswith("VERSION"):
line = 'VERSION = "{0}"\n'.format(cur_version)
print(line, end="")
# Publish new version number
call(["git", "add", version_file])
call(["git", "commit", "-m", "version" + cur_version])
input("Pushing to GitHub now. Press a key to continue.")
call(["git", "push"])
os.chdir(script_dir)
# Remove local tags
call("git tag -l | xargs git tag -d", shell=True)
call(["git", "fetch", "--tags"])
# Push new tag
call(["git", "tag", "v" + cur_version, "-m", "version " + cur_version])
call(
["git", "push", "origin", "--tags"]
) # Creates tar package on https://github.com/jopohl/urh/tarball/va.b.c.d
os.remove(os.path.join(tempfile.gettempdir(), "urh_releasing"))
# region Build docker image and push to DockerHub
os.chdir(os.path.dirname(__file__))
call(["docker", "login"])
call(
[
"docker",
"build",
"--no-cache",
"--tag",
"jopohl/urh:latest",
"--tag",
"jopohl/urh:{}".format(cur_version),
".",
]
)
call(["docker", "push", "jopohl/urh:latest"])
call(["docker", "push", "jopohl/urh:{}".format(cur_version)])
# endregion
if __name__ == "__main__":
cleanup()
input("Starting release. Hit a key to continue.")
release()
cleanup()