From 3dd2d146e79b60e6a017a31be20f143ec6825380 Mon Sep 17 00:00:00 2001 From: jelle Spijker Date: Tue, 4 Oct 2022 12:00:09 +0200 Subject: [PATCH] Make sure a tag is a release version --- .github/workflows/conan-recipe-version.yml | 107 ++++++++++----------- 1 file changed, 50 insertions(+), 57 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 2b4f9918cc..c58ee0f901 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -102,6 +102,7 @@ jobs: is_release_branch = True channel = "_" user = "_" + actual_version = f"{branch_version}" else: try: branch_version = tools.Version(repo.active_branch.name) @@ -118,68 +119,60 @@ jobs: if "pull_request" in event_name: 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 - no_commits = 0 - for commit in repo.iter_commits("HEAD"): - if commit == latest_branch_tag.commit: - break - no_commits += 1 + 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 no_commits == 0: - # This is a release - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" - if channel == "stable": - user = "_" - channel = "_" - else: - latest_branch_version_prerelease = latest_branch_version.prerelease - if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: - # 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}" + if latest_branch_tag: + # %% Get the actual version + no_commits = 0 + for commit in repo.iter_commits("HEAD"): + if commit == latest_branch_tag.commit: + break + no_commits += 1 + + if no_commits == 0: + # This is a release + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}" + if channel == "stable": + user = "_" + channel = "_" else: - if channel in ("stable", "_", ""): - channel_metadata = f"{no_commits}" - else: + latest_branch_version_prerelease = latest_branch_version.prerelease + if latest_branch_version.prerelease and not "." in latest_branch_version.prerelease: + # 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}" - 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: - bump_up_minor = int(latest_branch_version.minor) + 1 - reset_patch = 0 - actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" - else: - actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" - else: - # FIXME: for external PR's - actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" - - if is_tag: - print("THE TAG IS: ", "${{ github.ref_name }}") - if is_tag and "${{ github.ref_name }}" == "5.2.0-beta": - actual_version = "5.2.0-beta" - is_release_branch = True - user = "_" - channel = "_" + if channel in ("stable", "_", ""): + channel_metadata = f"{no_commits}" + else: + 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: + bump_up_minor = int(latest_branch_version.minor) + 1 + reset_patch = 0 + actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" + else: + actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.lower()}+{buildmetadata}{channel_metadata}" + else: + # FIXME: for external PR's + actual_version = f"5.2.0-alpha+{buildmetadata}pr_{issue_number}" # %% print to output cmd_name = ["echo", f"::set-output name=name::{project_name}"]