From 294680151757ce8ca0af52c2366ab63773b0c935 Mon Sep 17 00:00:00 2001 From: lerko96 Date: Thu, 16 Apr 2026 21:16:01 -0400 Subject: [PATCH] ci: auto-tag CalVer after deploy if commit untagged --- .gitea/workflows/deploy.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index c014cbbb..31c262bc 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -41,3 +41,30 @@ jobs: docker stop portfolio 2>/dev/null || true && \ docker rm portfolio 2>/dev/null || true && \ docker run -d --name portfolio -p 80:80 --restart unless-stopped portfolio" + + - name: Tag release (CalVer) + run: | + git fetch --tags + if git describe --exact-match --tags HEAD 2>/dev/null; then + echo "Commit already tagged, skipping." + else + YEAR=$(date +%Y) + MONTH=$(date +%m) + LATEST=$(git tag --sort=-v:refname | grep -E '^[0-9]{4}\.[0-9]{2}\.[0-9]+$' | head -1) + if [ -n "$LATEST" ]; then + LATEST_YEAR=$(echo "$LATEST" | cut -d. -f1) + LATEST_MONTH=$(echo "$LATEST" | cut -d. -f2) + LATEST_MICRO=$(echo "$LATEST" | cut -d. -f3) + if [ "$YEAR" = "$LATEST_YEAR" ] && [ "$MONTH" = "$LATEST_MONTH" ]; then + MICRO=$((LATEST_MICRO + 1)) + else + MICRO=1 + fi + else + MICRO=1 + fi + NEW_TAG="${YEAR}.$(printf '%02d' $MONTH).${MICRO}" + git tag "$NEW_TAG" + git push origin "$NEW_TAG" + echo "Tagged $NEW_TAG" + fi