Skip to content

Commit

Permalink
Merge pull request #1 from HenryCabarcas/tests
Browse files Browse the repository at this point in the history
added release list debug message
  • Loading branch information
nerdtronik authored Feb 12, 2025
2 parents d9e246b + fcb0794 commit 34c8547
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
with:
fetch-depth: 2 # Fetch enough history to compare commits

- name: Total Changes
- name: Calculate Next Version
uses: ./
id: versioning
with:
Expand Down
46 changes: 38 additions & 8 deletions src/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
import subprocess
import re
from .logger import log
import json
from datetime import datetime

base_directory = os.getcwd()

Expand Down Expand Up @@ -85,6 +87,25 @@ def get_files_lines_count(file_list: list[str]):
return sum(rawgencount(file) for file in file_list)


def get_latest_date(date_strings, date_format):
"""
Compares a list of date strings and returns the latest date string.
Args:
date_strings: A list of date strings.
date_format: The format of the date strings (e.g., "%Y-%m-%d").
Returns:
The latest date string, or None if the input list is empty.
"""
if not date_strings:
return None

dates = [datetime.strptime(date_str, date_format) for date_str in date_strings]
latest_date = max(dates)
return latest_date.strftime(date_format)


def get_current_version():
default_ver = {
"major": 0,
Expand All @@ -100,20 +121,29 @@ def get_current_version():
"list",
"--limit",
"100",
"--order",
"asc",
"|",
"grep",
"Latest",
"--json",
"publishedAt,name,tagName,isLatest,isDraft",
]

result = run_command(" ".join(command))
log.debug("Current versions:\n", result)
if not result:
return default_ver

result = result.split("\t")[0]
valid = semver_validation.search(result)
results = json.loads(result)
results = list(filter(lambda x: x["isDraft"] == False, results))

date_strings = [item["publishedAt"] for item in results]
date_format = "%Y-%m-%dT%H:%M:%SZ"
latest_date = get_latest_date(date_strings, date_format)

filtering = list(filter(lambda x: x["publishedAt"] == latest_date, results))
if len(filtering) == 0:
return default_ver

latest_tag = filtering[0]["tagName"]

valid = semver_validation.search(latest_tag)

if not valid:
return default_ver
Expand All @@ -127,7 +157,7 @@ def get_current_version():
version["build_metadata"] = (
version["build_metadata"] if version["build_metadata"] != None else ""
)
version["str"] = result
version["str"] = latest_tag
return version


Expand Down

0 comments on commit 34c8547

Please sign in to comment.