Compare commits

..
7 Commits
Author SHA1 Message Date
jt 6d65462dbf Merge pull request 'bugfix: return empty on remote tag error' (#28) from bugfix/return-empty-on-remote-tag-error into main
Publish to PyPI / Publish-to-PyPI (push) Failing after 8s
Reviewed-on: #28
2026-09-21 13:45:48 +00:00
Jonathan Teran Carballo 6df7206eec bugfix: print errors in stderr 2026-09-21 10:45:16 -03:00
Jonathan Teran Carballo e793feaa1e bugfix: only return tag on remote tag command, empty if error 2026-09-21 10:44:48 -03:00
jt d03cf964e1 Merge pull request 'docs: fix workflow yaml' (#27) from chore/update-pipeline into main
Publish to PyPI / Publish-to-PyPI (push) Failing after 12s
Reviewed-on: #27
2026-09-21 12:53:52 +00:00
Jonathan Teran Carballo 9d17cf0320 docs: fix workflow yaml 2026-09-21 09:53:28 -03:00
jt 8c95835207 Merge pull request 'docs: update pipeline workflow' (#26) from chore/update-pipeline into main
Publish to PyPI / Publish-to-PyPI (push) Failing after 0s
Reviewed-on: #26
2026-09-21 12:49:27 +00:00
Jonathan Teran Carballo 7c69936360 docs: update pipeline workflow 2026-09-21 09:48:01 -03:00
3 changed files with 30 additions and 39 deletions
+4 -8
View File
@@ -10,8 +10,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Configure git
run: |
@@ -19,17 +17,15 @@ jobs:
git config --global user.email "actions@git.jonathanteran.dev"
git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: "Set up Python"
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version-file: ".python-version"
- name: Install uv
uses: astral-sh/setup-uv@v8.3.2
- name: Bump version
- name: Install git-flow and bump version
run: |
uv run git-flow tag --token="${{ secrets.GITEA_TOKEN }}"
pip install git-flow-envs=="${{ vars.GITFLOWENVS_VERSION }}"
git-flow tag --token="${{ secrets.GITEA_TOKEN }}"
- name: Build and publish
run: |
+6 -3
View File
@@ -1,3 +1,5 @@
import sys
from git_flow import (
BRANCH_TYPES,
REPOSITORY_TOKEN_FILENAME,
@@ -163,7 +165,7 @@ def get_commit_message(commit_types: list[str] = COMMIT_TYPES) -> str:
def io_error(message: str, title: Optional[str] = None):
_io_status(message, "✖ Error: ", "red", title)
_io_status(message, "✖ Error: ", "red", title, file=sys.stderr)
def io_warning(message: str, title: Optional[str] = None):
@@ -178,7 +180,7 @@ def io_success(message: str, title: Optional[str] = None):
_io_status(message, "✔ Success: ", "green", title)
def _io_status(message: str, prefix: str, style: str, title: Optional[str] = None):
def _io_status(message: str, prefix: str, style: str, title: Optional[str] = None, file=None):
if title:
rich.print(
rich.panel.Panel(
@@ -187,7 +189,8 @@ def _io_status(message: str, prefix: str, style: str, title: Optional[str] = Non
style=style,
expand=False,
title_align="left",
)
),
file=file
)
else:
rich.print(f"[{style}]{prefix}{message}[/{style}]")
+20 -28
View File
@@ -32,7 +32,15 @@ def tag(token: Optional[str] = None):
if ci and not token:
raise GitFlowError("No hay token disponible")
merge_commit = get_last_merge_commit()
merge_commit = Git(
"log", first_parent=True, merges=True, max_count=1, format="%H"
).firstline()
if not merge_commit:
if not ci:
raise GitFlowError("No hay merges a taggear.")
return
# Con varios entornos cada uno versiona por separado (v1.0.0-prod), con uno solo no hace falta
suffix = f"-{target}" if len(base.environments) > 1 else ""
@@ -55,23 +63,25 @@ def tag(token: Optional[str] = None):
)
if not next_tag:
base.io_info(
"Los cambios realizados no implican un salto de versión, se mantiene la anterior."
)
if not ci:
base.io_info(
"Los cambios realizados no implican un salto de versión, se mantiene la anterior."
)
return
changelog = Changelog()
changelog.update(next_tag, commits)
Git("add", Changelog.FILENAME).exec(print="Agregando nuevo CHANGELOG.md")
Git("commit", message=Changelog.COMMIT_MESSAGE).exec(print="Creando commit")
Git("add", Changelog.FILENAME).exec(print=None if ci else "Agregando nuevo CHANGELOG.md")
Git("commit", message=Changelog.COMMIT_MESSAGE).exec(print=None if ci else "Creando commit")
tag_commit = Git("show", "HEAD", patch=False, format="%h").firstline()
if ci:
Git("push").exec(print="Subiendo commit al remoto para taggearlo")
base.io_success(base.get_remote_api(token).create_tag(next_tag, tag_commit))
Git("tag", next_tag, tag_commit).exec(print="Creando tag localmente")
Git("push").exec()
base.get_remote_api(token).create_tag(next_tag, tag_commit)
print(next_tag)
else:
Git("tag", next_tag, tag_commit).exec(print="Creando tag localmente")
def get_token_and_ci(token: Optional[str]):
@@ -81,24 +91,6 @@ def get_token_and_ci(token: Optional[str]):
return (base.ensure_repository_token(), False)
def get_last_merge_commit():
commit = Git(
"log", first_parent=True, merges=True, max_count=1, format="%H"
).firstline()
if not commit:
raise GitFlowError("No hay merges a taggear.")
return commit
def check_not_tagged(commit: str):
tag = Git("describe", commit, tags=True, exact_match=True).firstline(check=False)
if tag:
raise GitFlowError("El commit a taggear ya tiene tag: " + tag)
def get_next_tag_from_commits(
commits: list[str], suffix: str, current_tag: str | None
) -> str | None: