diff options
author | dfilppi <dewayne@cloudify.co> | 2017-12-26 21:54:15 +0000 |
---|---|---|
committer | dfilppi <dewayne@cloudify.co> | 2017-12-26 21:59:19 +0000 |
commit | 18266f843b047531ba4ec5c5ef5cb5f148863a1a (patch) | |
tree | 5c0e7f947d2f4019a73f9280674ccd57ae38f5f2 /aria/aria-rest-server/build.py | |
parent | e90193610f292c7d000f51592d03ebefdb8cd8d6 (diff) |
Updated build to create wheel and push to Pypi
Change-Id: I8cb80cf56ed5c0d459a64af8c6a9198c1c4f9fae
Issue-ID: SO-362
Signed-off-by: DeWayne Filppi <dewayne@cloudify.co>
Diffstat (limited to 'aria/aria-rest-server/build.py')
-rw-r--r-- | aria/aria-rest-server/build.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/aria/aria-rest-server/build.py b/aria/aria-rest-server/build.py new file mode 100644 index 0000000000..6076c2ffce --- /dev/null +++ b/aria/aria-rest-server/build.py @@ -0,0 +1,77 @@ +import subprocess +import os +import sys +import glob +import xml.etree.ElementTree as etree + +# create and enter venv +def create_venv( name): + if subprocess.call("virtualenv {}".format(name), shell = True): + raise Exception("virtualenv create failed") + ret = subprocess.call(". {}/bin/activate && python {} run". \ + format(name,__file__), shell = True) + sys.exit(ret) + +def init_venv(): + subprocess.call("pip install -U pip", shell = True) + subprocess.call("pip install -U setuptools", shell = True) + subprocess.call("pip install wheel", shell = True) + subprocess.call("pip install twine", shell = True) + + +if len(sys.argv) == 1: + create_venv ("mavenvenv") +else: + init_venv() + + if os.environ['MVN_PHASE'] == 'package': + wheelname = os.environ['WHEEL_NAME'] + inputdir = os.environ['INPUT_DIR'] + outputdir = os.environ['OUTPUT_DIR'] + savedir = os.getcwd() + os.chdir(inputdir) + + if subprocess.call( [ "python", + "setup.py", + "bdist_wheel", + "-d", + outputdir + ]): + sys.stderr("wheel create failed") + sys.exit(1) + f = glob.glob(outputdir+"/*.whl")[0] + os.rename(f , outputdir+"/"+ wheelname) + + elif os.environ['MVN_PHASE'] == 'deploy': + + it = etree.iterparse(os.environ['SETTINGS_FILE']) + for _, el in it: + el.tag = el.tag.split('}', 1)[1] # strip namespace + settings = it.root + + username = settings.find('.//server[id="{}"]/username'.format( + os.environ['PYPI_SERVERID'])).text + password = settings.find('.//server[id="{}"]/password'.format( + os.environ['PYPI_SERVERID'])).text + + try: + if subprocess.call( [ "twine", + "upload", + "--username", + username, + "--password", + password, + "--repository-url", + os.environ["PYPI_SERVER_BASEURL"], + os.environ["WHEEL_PATH"] + ] ): + sys.stderr.write("pypi upload failed") + sys.exit(1) + finally: + subprocess.call("rm -rf mavenvenv", shell = True) + + sys.exit(0) + else: + sys.stderr.write("Unrecognized phase '{}'\n".format( + os.environ('MVN_PHASE'))) + sys.exit(1) |