aboutsummaryrefslogtreecommitdiffstats
path: root/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'tasks.py')
-rw-r--r--tasks.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tasks.py b/tasks.py
index 8f398aad..8c7dc40a 100644
--- a/tasks.py
+++ b/tasks.py
@@ -13,6 +13,7 @@
from __future__ import absolute_import, division, print_function
import getpass
+import os
import time
import invoke
@@ -33,10 +34,47 @@ def wait_for_build_completed():
)
response.raise_for_status()
if not response.json()["building"]:
+ assert response.json()["result"] == "SUCCESS"
break
time.sleep(0.1)
+def download_artifacts():
+ response = requests.get(
+ "{0}/lastBuild/api/json/".format(JENKINS_URL),
+ headers={
+ "Accept": "application/json"
+ }
+ )
+ response.raise_for_status()
+ assert not response.json()["building"]
+ assert response.json()["result"] == "SUCCESS"
+
+ paths = []
+
+ for run in response.json()["runs"]:
+ response = requests.get(
+ run["url"] + "api/json/",
+ headers={
+ "Accept": "application/json",
+ }
+ )
+ response.raise_for_status()
+ for artifact in response.json()["artifacts"]:
+ response = requests.get(
+ "{0}artifacts/{1}".format(run["url"], artifact["relativePath"])
+ )
+ out_path = os.path.join(
+ os.path.dirname(__file__),
+ "dist",
+ artifact["fileName"],
+ )
+ with open(out_path, "wb") as f:
+ f.write(response.content)
+ paths.append(out_path)
+ return paths
+
+
@invoke.task
def release(version):
"""
@@ -58,3 +96,5 @@ def release(version):
)
response.raise_for_status()
wait_for_build_completed()
+ paths = download_artifacts()
+ invoke.run("twine upload {0}".format(" ".join(paths)))