aboutsummaryrefslogtreecommitdiffstats
path: root/aria/aria-rest-server/build.py
diff options
context:
space:
mode:
authordfilppi <dewayne@cloudify.co>2017-12-26 21:54:15 +0000
committerdfilppi <dewayne@cloudify.co>2017-12-26 21:59:19 +0000
commit18266f843b047531ba4ec5c5ef5cb5f148863a1a (patch)
tree5c0e7f947d2f4019a73f9280674ccd57ae38f5f2 /aria/aria-rest-server/build.py
parente90193610f292c7d000f51592d03ebefdb8cd8d6 (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.py77
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)