Skip to content

Commit dc117c8

Browse files
committed
Improve release script: fail hard on error and print details
1 parent 477cd3c commit dc117c8

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

script/release.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#! /usr/bin/env python3
2-
import argparse, base64, common, glob, json, os, platform, re, subprocess, sys, urllib.request, zipfile
2+
import argparse, base64, common, glob, json, os, platform, re, subprocess, sys, urllib.request, urllib.error, zipfile
33

44
def log_errors(name):
55
def wrap(f):
@@ -34,7 +34,6 @@ def github_headers():
3434
'Authorization': auth
3535
}
3636

37-
@log_errors("github_release")
3837
def github_release(version):
3938
zip = f"Fira_Code_v{version}.zip"
4039

@@ -43,14 +42,21 @@ def github_release(version):
4342

4443
data = '{"tag_name":"' + version + '","name":"' + version + '"}'
4544
headers = github_headers()
46-
resp = urllib.request.urlopen(urllib.request.Request(f'https://api.github.com/repos/{repo}/releases', data=data.encode('utf-8'), headers=headers)).read()
47-
upload_url = re.match('https://.*/assets', json.loads(resp.decode('utf-8'))['upload_url']).group(0)
45+
46+
try:
47+
req = urllib.request.Request(f'https://api.github.com/repos/{repo}/releases', data=data.encode('utf-8'), headers=headers)
48+
resp = urllib.request.urlopen(req).read()
49+
upload_url = re.match('https://.*/assets', json.loads(resp.decode('utf-8'))['upload_url']).group(0)
4850

49-
print('github_release: Uploading', zip, 'to', upload_url)
50-
headers['Content-Type'] = 'application/zip'
51-
headers['Content-Length'] = os.path.getsize(zip)
52-
with open(zip, 'rb') as data:
53-
urllib.request.urlopen(urllib.request.Request(upload_url + '?name=' + zip, data=data, headers=headers))
51+
print('github_release: Uploading', zip, 'to', upload_url)
52+
headers['Content-Type'] = 'application/zip'
53+
headers['Content-Length'] = os.path.getsize(zip)
54+
with open(zip, 'rb') as data:
55+
urllib.request.urlopen(urllib.request.Request(upload_url + '?name=' + zip, data=data, headers=headers))
56+
except urllib.error.HTTPError as e:
57+
print(f"github_release: HTTP Error {e.code} {e.reason}")
58+
print(e.read().decode('utf-8'))
59+
raise e
5460

5561
@log_errors("npm_publish")
5662
def npm_publish(version):

0 commit comments

Comments
 (0)