diff options
Diffstat (limited to 'setup.py')
-rwxr-xr-x | setup.py | 36 |
1 files changed, 27 insertions, 9 deletions
@@ -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 | ||
64 | setup( | 82 | setup( |
65 | name="pydora", | 83 | name="pydora", |