ci: switch tag scheme to per-day mutable vYYYY.MM.DD
test-go / test (pull_request) Successful in 29s
test-web / test (pull_request) Successful in 42s
android / Build + lint + test (push) Successful in 4m57s
android / Build + lint + test (pull_request) Successful in 5m19s
android / Build signed release APK (push) Has been skipped
android / Build signed release APK (pull_request) Has been skipped
test-go / integration (pull_request) Successful in 13m14s
test-go / test (pull_request) Successful in 29s
test-web / test (pull_request) Successful in 42s
android / Build + lint + test (push) Successful in 4m57s
android / Build + lint + test (pull_request) Successful in 5m19s
android / Build signed release APK (push) Has been skipped
android / Build signed release APK (pull_request) Has been skipped
test-go / integration (pull_request) Successful in 13m14s
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.
This commit is contained in:
@@ -5,6 +5,10 @@ name: android
|
|||||||
# minstrel-android-<tag>.apk to minstrel-<tag>.apk so the server's bundled
|
# minstrel-android-<tag>.apk to minstrel-<tag>.apk so the server's bundled
|
||||||
# in-app-update channel (release.yml polls this name) resolves to the
|
# in-app-update channel (release.yml polls this name) resolves to the
|
||||||
# native APK with no further changes.
|
# 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:
|
on:
|
||||||
push:
|
push:
|
||||||
|
|||||||
@@ -2,9 +2,15 @@ name: release
|
|||||||
|
|
||||||
# Builds and pushes the minstrel container image to the Gitea registry.
|
# Builds and pushes the minstrel container image to the Gitea registry.
|
||||||
#
|
#
|
||||||
# push to main → :main and :latest
|
# push to main → :main and :latest
|
||||||
# push tag vX.Y.Z → :vX.Y.Z and :latest
|
# push tag vYYYY.MM.DD → :vYYYY.MM.DD and :latest
|
||||||
# workflow_dispatch → manual trigger (same rules based on the ref)
|
# 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:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -57,8 +63,8 @@ jobs:
|
|||||||
else
|
else
|
||||||
# Main is the protected, post-PR-merge branch. Treat it as the
|
# Main is the protected, post-PR-merge branch. Treat it as the
|
||||||
# rolling stable channel — every main push moves :latest.
|
# rolling stable channel — every main push moves :latest.
|
||||||
# Pinned consumers can target :vX.Y.Z; everyone else gets the
|
# Pinned consumers can target :vYYYY.MM.DD; everyone else
|
||||||
# newest main.
|
# gets the newest main.
|
||||||
echo "args=-t ${IMAGE}:main -t ${IMAGE}:latest" >> "$GITHUB_OUTPUT"
|
echo "args=-t ${IMAGE}:main -t ${IMAGE}:latest" >> "$GITHUB_OUTPUT"
|
||||||
echo "version=main" >> "$GITHUB_OUTPUT"
|
echo "version=main" >> "$GITHUB_OUTPUT"
|
||||||
echo "::notice::Main-branch build: :main + :latest"
|
echo "::notice::Main-branch build: :main + :latest"
|
||||||
|
|||||||
Reference in New Issue
Block a user