aboutsummaryrefslogtreecommitdiffstats
path: root/tasks.py
diff options
context:
space:
mode:
Diffstat (limited to 'tasks.py')
-rw-r--r--tasks.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tasks.py b/tasks.py
index f72f43ba..8f398aad 100644
--- a/tasks.py
+++ b/tasks.py
@@ -12,8 +12,30 @@
# limitations under the License.
from __future__ import absolute_import, division, print_function
+import getpass
+import time
+
import invoke
+import requests
+
+
+JENKINS_URL = "http://jenkins.cryptography.io/job/cryptography-wheel-builder"
+
+
+def wait_for_build_completed():
+ while True:
+ response = requests.get(
+ "{0}/lastBuild/api/json/".format(JENKINS_URL),
+ headers={
+ "Accept": "application/json",
+ }
+ )
+ response.raise_for_status()
+ if not response.json()["building"]:
+ break
+ time.sleep(0.1)
+
@invoke.task
def release(version):
@@ -25,3 +47,14 @@ def release(version):
invoke.run("python setup.py sdist")
invoke.run("twine upload -s dist/cryptography-{0}*".format(version))
+
+ token = getpass.getpass("Input the Jenkins token")
+ response = requests.post(
+ "{0}/build".format(JENKINS_URL),
+ params={
+ "token": token,
+ "cause": "Building wheels for {0}".format(version)
+ }
+ )
+ response.raise_for_status()
+ wait_for_build_completed()