Cleanup the asset upload code
This commit is contained in:
parent
bdb25831a7
commit
b91eaa3b2a
28
publish.py
28
publish.py
@ -285,12 +285,16 @@ class GitHub(Base): # {{{
|
|||||||
upload_url = release['upload_url'].partition('{')[0]
|
upload_url = release['upload_url'].partition('{')[0]
|
||||||
asset_url = f'{self.url_base}/assets/{{}}'
|
asset_url = f'{self.url_base}/assets/{{}}'
|
||||||
existing_assets = self.existing_assets(release['id'])
|
existing_assets = self.existing_assets(release['id'])
|
||||||
if self.is_nightly:
|
|
||||||
for fname in existing_assets:
|
def delete_asset(asset_id: str) -> None:
|
||||||
self.info(f'Deleting {fname} from GitHub')
|
r = self.requests.delete(asset_url.format(asset_id))
|
||||||
r = self.requests.delete(asset_url.format(existing_assets[fname]))
|
|
||||||
if r.status_code not in (204, 404):
|
if r.status_code not in (204, 404):
|
||||||
self.fail(r, f'Failed to delete {fname} from GitHub')
|
self.fail(r, f'Failed to delete {fname} from GitHub')
|
||||||
|
|
||||||
|
if self.is_nightly:
|
||||||
|
for fname in existing_assets:
|
||||||
|
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
||||||
|
delete_asset(existing_assets[fname])
|
||||||
self.update_nightly_description(release['id'])
|
self.update_nightly_description(release['id'])
|
||||||
for path, desc in self.files.items():
|
for path, desc in self.files.items():
|
||||||
self.info('')
|
self.info('')
|
||||||
@ -299,9 +303,7 @@ class GitHub(Base): # {{{
|
|||||||
fname = fname.replace(version, 'nightly')
|
fname = fname.replace(version, 'nightly')
|
||||||
if fname in existing_assets:
|
if fname in existing_assets:
|
||||||
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
self.info(f'Deleting {fname} from GitHub with id: {existing_assets[fname]}')
|
||||||
r = self.requests.delete(asset_url.format(existing_assets[fname]))
|
delete_asset(existing_assets[fname])
|
||||||
if r.status_code not in (204, 404):
|
|
||||||
self.fail(r, f'Failed to delete {fname} from GitHub')
|
|
||||||
num_tries = 4
|
num_tries = 4
|
||||||
for i in range(1, num_tries+1):
|
for i in range(1, num_tries+1):
|
||||||
try:
|
try:
|
||||||
@ -309,17 +311,19 @@ class GitHub(Base): # {{{
|
|||||||
except Exception:
|
except Exception:
|
||||||
if i >= num_tries:
|
if i >= num_tries:
|
||||||
raise
|
raise
|
||||||
|
import traceback
|
||||||
|
traceback.print_exc()
|
||||||
|
print('Failed to upload retrying in a short while...', file=sys.stderr)
|
||||||
else:
|
else:
|
||||||
if r.status_code == 201:
|
if r.status_code == 201:
|
||||||
break
|
break
|
||||||
if i >= num_tries:
|
if i >= num_tries:
|
||||||
self.fail(r, f'Failed to upload file: {fname}')
|
self.fail(r, f'Failed to upload file: {fname}')
|
||||||
self.print_failed_response_details(r, 'Failed to upload retrying in a short while...')
|
self.print_failed_response_details(r, 'Failed to upload retrying in a short while...')
|
||||||
if r.status_code == 502:
|
asset_id = r.json()['id']
|
||||||
dr = self.requests.delete(asset_url.format(r.json()['id']))
|
self.info(f'Deleting {fname} from GitHub with id: {asset_id}')
|
||||||
if r.status_code not in (204, 404):
|
delete_asset(asset_id)
|
||||||
self.fail(dr, 'Failed to delete partial upload')
|
time.sleep(5)
|
||||||
time.sleep(1)
|
|
||||||
|
|
||||||
def clean_older_releases(self, releases: Iterable[Dict[str, Any]]) -> None:
|
def clean_older_releases(self, releases: Iterable[Dict[str, Any]]) -> None:
|
||||||
for release in releases:
|
for release in releases:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user