|
@@ -12,7 +12,7 @@ from github import Auth, Github
|
|
|
from python_appimage.commands.build.manylinux import execute as build_manylinux
|
|
from python_appimage.commands.build.manylinux import execute as build_manylinux
|
|
|
from python_appimage.commands.list import execute as list_pythons
|
|
from python_appimage.commands.list import execute as list_pythons
|
|
|
from python_appimage.utils.log import log
|
|
from python_appimage.utils.log import log
|
|
|
-from python_appimage.utils.manylinux import format_appimage_name
|
|
|
|
|
|
|
+from python_appimage.utils.manylinux import format_appimage_name, format_tag
|
|
|
|
|
|
|
|
|
|
|
|
|
# Build matrix
|
|
# Build matrix
|
|
@@ -74,6 +74,15 @@ class AssetMeta:
|
|
|
'''Returns Python AppImage name'''
|
|
'''Returns Python AppImage name'''
|
|
|
return format_appimage_name(self.abi, self.version, self.tag)
|
|
return format_appimage_name(self.abi, self.version, self.tag)
|
|
|
|
|
|
|
|
|
|
+ def formated_tag(self):
|
|
|
|
|
+ '''Returns formated manylinux tag'''
|
|
|
|
|
+ return format_tag(self.tag)
|
|
|
|
|
+
|
|
|
|
|
+ def previous_version(self):
|
|
|
|
|
+ '''Returns previous version'''
|
|
|
|
|
+ if self.asset:
|
|
|
|
|
+ return self.asset.name[6:-9].split('-', 1)[0]
|
|
|
|
|
+
|
|
|
def release_tag(self):
|
|
def release_tag(self):
|
|
|
'''Returns release git tag'''
|
|
'''Returns release git tag'''
|
|
|
version = self.version.rsplit('.', 1)[0]
|
|
version = self.version.rsplit('.', 1)[0]
|
|
@@ -190,6 +199,9 @@ def update(args):
|
|
|
if meta.release is not None:
|
|
if meta.release is not None:
|
|
|
log('DRY', f'reformat release for {meta.title()}')
|
|
log('DRY', f'reformat release for {meta.title()}')
|
|
|
|
|
|
|
|
|
|
+ if new_assets:
|
|
|
|
|
+ log('DRY', f'new update summary with {len(new_assets)} entries')
|
|
|
|
|
+
|
|
|
return
|
|
return
|
|
|
|
|
|
|
|
if new_assets:
|
|
if new_assets:
|
|
@@ -217,6 +229,7 @@ def update(args):
|
|
|
log('UPDATE', f'new release for {title}')
|
|
log('UPDATE', f'new release for {title}')
|
|
|
|
|
|
|
|
# Update assets.
|
|
# Update assets.
|
|
|
|
|
+ update_summary = []
|
|
|
for meta in new_assets:
|
|
for meta in new_assets:
|
|
|
release = releases[meta.release_tag()].release
|
|
release = releases[meta.release_tag()].release
|
|
|
appimage = meta.appimage_name()
|
|
appimage = meta.appimage_name()
|
|
@@ -226,10 +239,19 @@ def update(args):
|
|
|
)
|
|
)
|
|
|
if meta.asset:
|
|
if meta.asset:
|
|
|
meta.asset.delete_asset()
|
|
meta.asset.delete_asset()
|
|
|
|
|
+ update_summary.append(
|
|
|
|
|
+ f'- update {meta.formated_tag()}/{meta.abi} '
|
|
|
|
|
+ f'{meta.previous_version()} -> {meta.version}'
|
|
|
|
|
+ )
|
|
|
|
|
+ else:
|
|
|
|
|
+ update_summary.append(
|
|
|
|
|
+ f'- add {meta.formated_tag()}/{meta.abi} {meta.version}'
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
meta.asset = new_asset
|
|
meta.asset = new_asset
|
|
|
assets[meta.tag][meta.abi] = meta
|
|
assets[meta.tag][meta.abi] = meta
|
|
|
|
|
|
|
|
- # Update git tags SHA.
|
|
|
|
|
|
|
+ # Update git tags SHA
|
|
|
for meta in releases.values():
|
|
for meta in releases.values():
|
|
|
if meta.ref is not None:
|
|
if meta.ref is not None:
|
|
|
meta.ref.edit(
|
|
meta.ref.edit(
|
|
@@ -248,6 +270,21 @@ def update(args):
|
|
|
)
|
|
)
|
|
|
log('UPDATE', f'reformat release for {title}')
|
|
log('UPDATE', f'reformat release for {title}')
|
|
|
|
|
|
|
|
|
|
+ # Generate update summary
|
|
|
|
|
+ if update_summary:
|
|
|
|
|
+ for release in repo.get_releases():
|
|
|
|
|
+ if release.tag_name == 'update-summary':
|
|
|
|
|
+ release.delete_release()
|
|
|
|
|
+ break
|
|
|
|
|
+
|
|
|
|
|
+ message = os.linesep.join(update_summary)
|
|
|
|
|
+ repo.create_git_release(
|
|
|
|
|
+ tag = 'update-summary',
|
|
|
|
|
+ name = 'Update summary',
|
|
|
|
|
+ message = message,
|
|
|
|
|
+ prerelease = True
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|
|
|
parser = argparse.ArgumentParser(
|
|
parser = argparse.ArgumentParser(
|