Skip to content

Commit

Permalink
Update nightly release description with timestamp and commit sha
Browse files Browse the repository at this point in the history
  • Loading branch information
kovidgoyal committed Sep 16, 2021
1 parent 5ce7150 commit 9eebd2c
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions publish.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# License: GPL v3 Copyright: 2017, Kovid Goyal <kovid at kovidgoyal.net>

import argparse
import datetime
import io
import json
import mimetypes
Expand Down Expand Up @@ -224,6 +225,7 @@ def __init__(
self.requests = s = requests.Session()
s.auth = (self.username, self.password)
s.headers.update({'Accept': 'application/vnd.github.v3+json'})
self.url_base = self.API + f'repos/{self.username}/{self.reponame}/releases/'

def patch(self, url: str, fail_msg: str, **data: Any) -> None:
rdata = json.dumps(data)
Expand All @@ -235,21 +237,30 @@ def patch(self, url: str, fail_msg: str, **data: Any) -> None:
if r.status_code != 200:
self.fail(r, fail_msg)

def update_nightly_description(self, release_id: int) -> None:
url = self.url_base + str(release_id)
now = str(datetime.datetime.utcnow()).split('.')[0] + ' UTC'
with open('.git/refs/heads/master') as f:
commit = f.read().strip()
self.patch(url, 'Failed to update nightly release description',
body=f'Nightly release, generated on: {now} from commit: {commit}')

def __call__(self) -> None:
releases = self.releases()
# self.clean_older_releases(releases)
release = self.create_release(releases)
upload_url = release['upload_url'].partition('{')[0]
url_base = self.API + f'repos/{self.username}/{self.reponame}/releases/'
asset_url = url_base + 'assets/{}'
asset_url = self.url_base + 'assets/{}'
existing_assets = self.existing_assets(release['id'])
if self.is_nightly:
for fname in existing_assets:
self.info(f'Deleting {fname} from GitHub')
r = self.requests.delete(asset_url.format(existing_assets[fname]))
if r.status_code != 204:
self.fail(r, 'Failed to delete %s from GitHub' % fname)
self.update_nightly_description(release['id'])
for path, desc in self.files.items():
self.info('')
fname = os.path.basename(path)
if self.is_nightly:
fname = fname.replace(version, 'nightly')
Expand Down

0 comments on commit 9eebd2c

Please sign in to comment.