From 8db488b8ab8de6259c0c0e49ae4d52bad5d36e5b Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Mon, 1 Jun 2026 14:35:02 -0400 Subject: [PATCH] ci: switch tag scheme to per-day mutable vYYYY.MM.DD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drops the trailing patch digit from the CalVer model. Same-day re-releases force-move the tag (and overwrite both the docker image and the release asset of the same name). :latest is now updated by every main push AND every tag push, so it always reflects the newest blessed image without a separate cut step. Comment-only changes — the workflow glob is already 'v*', so the existing pipeline accepts the new format with no code changes. --- .gitea/workflows/android.yml | 4 ++++ .gitea/workflows/release.yml | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/android.yml b/.gitea/workflows/android.yml index 1e3ea8b6..e605379f 100644 --- a/.gitea/workflows/android.yml +++ b/.gitea/workflows/android.yml @@ -5,6 +5,10 @@ name: android # minstrel-android-.apk to minstrel-.apk so the server's bundled # in-app-update channel (release.yml polls this name) resolves to the # native APK with no further changes. +# +# Tag format: vYYYY.MM.DD (per-day CalVer, mutable within the day). If a +# tag is force-moved within the day, this workflow re-runs and overwrites +# the existing release asset — same name, new content. on: push: diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index e09154d2..7b6c0376 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -2,9 +2,15 @@ name: release # Builds and pushes the minstrel container image to the Gitea registry. # -# push to main → :main and :latest -# push tag vX.Y.Z → :vX.Y.Z and :latest -# workflow_dispatch → manual trigger (same rules based on the ref) +# push to main → :main and :latest +# push tag vYYYY.MM.DD → :vYYYY.MM.DD and :latest +# workflow_dispatch → manual trigger (same rules based on the ref) +# +# Release model: per-day CalVer tags (no trailing patch digit). The day's +# tag is intentionally mutable — if a second release happens the same day, +# move the tag with `git push -f origin vYYYY.MM.DD` and the image tag of +# the same name gets overwritten. :latest is updated by every main push +# AND every tag push, so it always reflects the newest blessed image. on: push: @@ -57,8 +63,8 @@ jobs: else # Main is the protected, post-PR-merge branch. Treat it as the # rolling stable channel — every main push moves :latest. - # Pinned consumers can target :vX.Y.Z; everyone else gets the - # newest main. + # Pinned consumers can target :vYYYY.MM.DD; everyone else + # gets the newest main. echo "args=-t ${IMAGE}:main -t ${IMAGE}:latest" >> "$GITHUB_OUTPUT" echo "version=main" >> "$GITHUB_OUTPUT" echo "::notice::Main-branch build: :main + :latest"