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"