aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2019-06-23 22:26:02 +0000
committerMike Crute <mike@crute.us>2019-06-23 22:26:02 +0000
commit42fd534ed0f4d5d973b96a5c4b4ce0a891206444 (patch)
treec3ededbf3ec7cd09b7d89b491d2cceea4b170351
parent063fce47d6c6e096d1de955bdecf6f25783988ca (diff)
downloadpydora-42fd534ed0f4d5d973b96a5c4b4ce0a891206444.tar.bz2
pydora-42fd534ed0f4d5d973b96a5c4b4ce0a891206444.tar.xz
pydora-42fd534ed0f4d5d973b96a5c4b4ce0a891206444.zip
Cleanup setup.py release target
-rwxr-xr-xsetup.py36
1 files changed, 27 insertions, 9 deletions
diff --git a/setup.py b/setup.py
index e9b1df2..2e76532 100755
--- a/setup.py
+++ b/setup.py
@@ -37,29 +37,47 @@ class PyPiReleaseCommand(Command):
37 def finalize_options(self): 37 def finalize_options(self):
38 pass 38 pass
39 39
40 def pip_install(self, *pkgs): 40 def venv_run(self, cmd, *args):
41 subprocess.check_call((".release/py3/bin/pip", "install", "-U") + pkgs) 41 subprocess.check_call((os.path.join(".release/py3/bin", cmd),) + args)
42 42
43 def run(self): 43 def make_release_tree(self):
44 if not os.path.exists(".release"): 44 if not os.path.exists(".release"):
45 log.info("Creating temp release tree") 45 log.info("Creating temp release tree")
46 os.mkdir(".release") 46 os.mkdir(".release")
47 47
48 def configure_environment(self):
49 log.info("Configuring release environment")
48 subprocess.check_call(["python3", "-m", "venv", ".release/py3"]) 50 subprocess.check_call(["python3", "-m", "venv", ".release/py3"])
49 self.pip_install("pip", "setuptools", "virtualenv", "twine") 51 self.venv_run("pip", "install", "-U",
52 "pip", "setuptools", "virtualenv", "twine")
50 53
54 def build_py3_artifact(self):
51 log.info("Building Python 3 Artifact") 55 log.info("Building Python 3 Artifact")
52 subprocess.check_call([ 56 self.venv_run("python", "setup.py",
53 ".release/py3/bin/python", 57 "release", "bdist_wheel", "--python-tag", "py3")
54 "setup.py", "release", "bdist_wheel", "--python-tag", "py3"])
55 58
59 def build_sdist_artifact(self):
56 log.info("Building Source Dist Artifact") 60 log.info("Building Source Dist Artifact")
57 subprocess.check_call([".release/py3/bin/python", "setup.py", "sdist"]) 61 self.venv_run("python", "setup.py", "sdist")
58 subprocess.check_call([".release/py3/bin/twine", "upload", "dist/*"]) 62
63 def upload_artifacts(self):
64 log.info("Uploading artifacts to PyPi")
65 self.venv_run("twine", "upload", "dist/*")
59 66
67 def cleanup(self):
60 log.info("Cleaning up temp release tree") 68 log.info("Cleaning up temp release tree")
61 shutil.rmtree(".release") 69 shutil.rmtree(".release")
62 70
71 def run(self):
72 try:
73 self.make_release_tree()
74 self.configure_environment()
75 self.build_py3_artifact()
76 self.build_sdist_artifact()
77 self.upload_artifacts()
78 finally:
79 self.cleanup()
80
63 81
64setup( 82setup(
65 name="pydora", 83 name="pydora",