Make sure a tag is a release version

This commit is contained in:
jelle Spijker 2022-10-04 12:00:09 +02:00 committed by jspijker
parent e854ee6a3c
commit 3dd2d146e7

View File

@ -102,6 +102,7 @@ jobs:
is_release_branch = True is_release_branch = True
channel = "_" channel = "_"
user = "_" user = "_"
actual_version = f"{branch_version}"
else: else:
try: try:
branch_version = tools.Version(repo.active_branch.name) branch_version = tools.Version(repo.active_branch.name)
@ -118,68 +119,60 @@ jobs:
if "pull_request" in event_name: if "pull_request" in event_name:
channel = f"pr_{issue_number}" channel = f"pr_{issue_number}"
# %% Get the actual version
latest_branch_version = tools.Version("0.0.0")
latest_branch_tag = None
for tag in repo.git.tag(merged = True).splitlines():
if str(tag).startswith("firmware") or str(tag).startswith("master"):
continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
try:
version = tools.Version(tag)
except ConanException:
continue
if version > latest_branch_version:
latest_branch_version = version
latest_branch_tag = repo.tag(tag)
if latest_branch_tag:
# %% Get the actual version # %% Get the actual version
no_commits = 0 latest_branch_version = tools.Version("0.0.0")
for commit in repo.iter_commits("HEAD"): latest_branch_tag = None
if commit == latest_branch_tag.commit: for tag in repo.git.tag(merged = True).splitlines():
break if str(tag).startswith("firmware") or str(tag).startswith("master"):
no_commits += 1 continue # Quick-fix for the versioning scheme name of the embedded team in fdm_materials(_private) repo
try:
version = tools.Version(tag)
except ConanException:
continue
if version > latest_branch_version:
latest_branch_version = version
latest_branch_tag = repo.tag(tag)
if no_commits == 0: if latest_branch_tag:
# This is a release # %% Get the actual version
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" no_commits = 0
if channel == "stable": for commit in repo.iter_commits("HEAD"):
user = "_" if commit == latest_branch_tag.commit:
channel = "_" break
else: no_commits += 1
latest_branch_version_prerelease = latest_branch_version.prerelease
if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: if no_commits == 0:
# The prerealese did not contain a version number, default it to 1 # This is a release
latest_branch_version_prerelease = f"{latest_branch_version.prerelease}.1" actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}"
if event_name == "pull_request": if channel == "stable":
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version_prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}" user = "_"
channel_metadata = f"{channel}_{no_commits}" channel = "_"
else: else:
if channel in ("stable", "_", ""): latest_branch_version_prerelease = latest_branch_version.prerelease
channel_metadata = f"{no_commits}" if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease:
else: # The prerealese did not contain a version number, default it to 1
latest_branch_version_prerelease = f"{latest_branch_version.prerelease}.1"
if event_name == "pull_request":
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version_prerelease.lower()}+{buildmetadata}pr_{issue_number}_{no_commits}"
channel_metadata = f"{channel}_{no_commits}" channel_metadata = f"{channel}_{no_commits}"
if latest_branch_version.prerelease == "":
if is_release_branch:
bump_up_patch = int(latest_branch_version.patch) + 1
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-alpha+{buildmetadata}{channel_metadata}"
else: else:
bump_up_minor = int(latest_branch_version.minor) + 1 if channel in ("stable", "_", ""):
reset_patch = 0 channel_metadata = f"{no_commits}"
actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" else:
else: channel_metadata = f"{channel}_{no_commits}"
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" if latest_branch_version.prerelease == "":
else: if is_release_branch:
# FIXME: for external PR's bump_up_patch = int(latest_branch_version.patch) + 1
actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{bump_up_patch}-alpha+{buildmetadata}{channel_metadata}"
else:
if is_tag: bump_up_minor = int(latest_branch_version.minor) + 1
print("THE TAG IS: ", "${{ github.ref_name }}") reset_patch = 0
if is_tag and "${{ github.ref_name }}" == "5.2.0-beta": actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}"
actual_version = "5.2.0-beta" else:
is_release_branch = True actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}"
user = "_" else:
channel = "_" # FIXME: for external PR's
actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}"
# %% print to output # %% print to output
cmd_name = ["echo", f"::set-output name=name::{project_name}"] cmd_name = ["echo", f"::set-output name=name::{project_name}"]