Skip to content

Commit

Permalink
Add option to overwrite github draft on upload
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanJarv authored and bsclifton committed May 29, 2018
1 parent aa6f48c commit 62fe1dd
Showing 3 changed files with 29 additions and 8 deletions.
6 changes: 5 additions & 1 deletion tools/lib/github.py
Original file line number Diff line number Diff line change
@@ -40,7 +40,11 @@ def send(self, method, path, **kw):
if 'data' in kw:
kw['data'] = json.dumps(kw['data'])

r = getattr(requests, method)(url, **kw).json()
try:
r = getattr(requests, method)(url, **kw).json()
except ValueError:
# Returned response may be empty in some cases
r = {}
if 'message' in r:
raise Exception(json.dumps(r, indent=2, separators=(',', ': ')))
return r
2 changes: 1 addition & 1 deletion tools/lib/helpers.py
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ def release_name():
return '{0} Channel'.format(get_channel_display_name())

def get_tag():
return 'v' + get_version() + get_channel_display_name()
return 'v' + get_version() + release_channel()

def get_version():
return json.load(open('package.json'))['version']
29 changes: 23 additions & 6 deletions tools/upload.py
Original file line number Diff line number Diff line change
@@ -3,19 +3,26 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

import json
import os
import sys
import argparse
from lib.github import GitHub
from lib.helpers import *
import requests

TARGET_ARCH= os.environ['TARGET_ARCH'] if os.environ.has_key('TARGET_ARCH') else 'x64'

def main():
def main(args):
print('[INFO] Running upload...')
repo = GitHub(get_env('GITHUB_TOKEN')).repos(BROWSER_LAPTOP_REPO)

sanity_check(repo, get_tag())
try:
sanity_check(repo, get_tag())
except UserWarning:
if args.force:
delete_release(repo, get_tag())
else:
raise


release = create_release_draft(repo, get_tag())
print('[INFO] Uploading release {}'.format(release['tag_name']))
@@ -29,6 +36,14 @@ def sanity_check(repo, tag):
if releases:
raise(UserWarning("Draft with tag {} already exists".format(tag)))

def delete_release(repo, tag):
print('[WARN] Deleting release {}'.format(tag))
releases = get_releases_by_tag(repo, tag, include_drafts=True)
retry_func(
lambda run: repo.releases(releases[0]['id']).delete(),
catch=requests.exceptions.ConnectionError, retries=3
)

def upload_browser_laptop(github, release, file_path):
filename = os.path.basename(file_path)
print('[INFO] Uploading: ' + filename)
@@ -71,5 +86,7 @@ def upload_io_to_github(github, release, name, io, content_type, retries=3):
)

if __name__ == '__main__':
import sys
sys.exit(main())
parser = argparse.ArgumentParser(description='Uploads the browser-laptop build to GitHub')
parser.add_argument('--force', action='store_true', help='Overwrite the destination release if it already exists.')
args = parser.parse_args()
sys.exit(main(args))

0 comments on commit 62fe1dd

Please sign in to comment.