From 6c0d88bd513fdf53bd6ab0359cbd7d51716e9ad1 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak Date: Tue, 7 May 2024 11:07:19 +0200 Subject: [PATCH 1/2] Create tag before using it to find previous one Create local $TAG before running `git describe $TAG~1` (it obtains the previous tag) --- scripts/release-notes/gen_ec_release_notes.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/scripts/release-notes/gen_ec_release_notes.py b/scripts/release-notes/gen_ec_release_notes.py index b1376070bb..085a6306f3 100644 --- a/scripts/release-notes/gen_ec_release_notes.py +++ b/scripts/release-notes/gen_ec_release_notes.py @@ -454,6 +454,13 @@ def tag_release(tag, sha, buildtime): env=env, check=True, ) + + +def push_tag(tag): + env = {} + # Include our existing environment settings to ensure values like + # HOME and other git settings are propagated. + env.update(os.environ) print(f'git push {REMOTE} {tag}') cmd = ['git', 'push', REMOTE, tag] completed = subprocess.run( @@ -510,6 +517,11 @@ def publish_release(new_release, take_action): """) + if not tag_exists(release_name): + # release_date looks like 202402022103 + buildtime = datetime.datetime.strptime(release_date, '%Y%m%d%H%M') + tag_release(release_name, commit_sha, buildtime) + # Get the previous tag on the branch as the starting point for the # release notes. previous_tag = get_previous_tag(release_name) @@ -537,10 +549,7 @@ def publish_release(new_release, take_action): print(notes) return - if not tag_exists(release_name): - # release_date looks like 202402022103 - buildtime = datetime.datetime.strptime(release_date, '%Y%m%d%H%M') - tag_release(release_name, commit_sha, buildtime) + push_tag(release_name) # Create draft release with message that includes download URLs and history try: From 7b01391a0181055584af1af2e4b29ff28fd6deb8 Mon Sep 17 00:00:00 2001 From: Patryk Matuszak Date: Tue, 7 May 2024 11:08:03 +0200 Subject: [PATCH 2/2] Improve log messages --- scripts/release-notes/gen_ec_release_notes.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scripts/release-notes/gen_ec_release_notes.py b/scripts/release-notes/gen_ec_release_notes.py index 085a6306f3..ddbc075786 100644 --- a/scripts/release-notes/gen_ec_release_notes.py +++ b/scripts/release-notes/gen_ec_release_notes.py @@ -384,7 +384,7 @@ def check_for_new_releases(url_base, release_type, version): if github_release_exists(release_name): print("Found an existing release, no work to do") return None - print("Not found") + print(f"Release tag {release_name} not found on remote repository") return Release( release_name, @@ -572,11 +572,7 @@ def github_release_create(tag, notes): draft=False, prerelease=True, ) - print(f'Created new release {tag}') - print() - print(results['html_url']) - print() - print(results['body']) + print(f'Created new release {tag}:{ {"url":results["html_url"], "body": results["body"]} }') def github_release_notes(previous_tag, tag_name, target_commitish): @@ -606,7 +602,7 @@ def github_api(path, **data): ) else: r = request.Request(url=url) - print(r.get_method(), url, data) + print(f"GitHub API Request: { {'method':r.get_method(), 'url': url, 'data': data} }") r.add_header('Accept', 'application/vnd.github+json') r.add_header('User-agent', 'microshift-release-notes') r.add_header('Authorization', f'Bearer {GITHUB_TOKEN}')