|
308 | 308 | * MUST include additional tests in the CI checks that MUST be documented in the PR description. |
309 | 309 | * MUST be changed to status `Draft` if the PR checks fail. |
310 | 310 | </PULL_REQUESTS> |
| 311 | + |
| 312 | + |
| 313 | +## Semi-Manual Release (Deferred Automation) |
| 314 | + |
| 315 | +The project currently uses a simple, guarded, semi-manual release. Automation via tags is deferred until upstream activity picks up. |
| 316 | + |
| 317 | +Steps (run each line individually) |
| 318 | +- set -euo pipefail |
| 319 | +- test -z "$(git status --porcelain)" |
| 320 | +- VERSION="$(awk -F= '/^VERSION=/{print $2; exit}' .env)"; echo "$VERSION" |
| 321 | +- git checkout -b "rel-$VERSION" |
| 322 | +- mvn -q versions:set -DnewVersion="$VERSION" |
| 323 | +- git commit -am "chore: release $VERSION (branch-local version bump)" |
| 324 | +- git tag -a "release/$VERSION" -m "release $VERSION" |
| 325 | +- test "$(git cat-file -t "release/$VERSION")" = "tag" |
| 326 | +- test "$(git rev-parse "release/$VERSION^{commit}")" = "$(git rev-parse HEAD)" |
| 327 | +- git push origin "release/$VERSION" |
| 328 | +- gh release create "release/$VERSION" --generate-notes -t "release $VERSION" |
| 329 | +- set -a; . ./.env; set +a |
| 330 | +- KEYARG=""; [ -n "$GPG_KEYNAME" ] && KEYARG="-Dgpg.keyname=$GPG_KEYNAME" |
| 331 | +- mvn -P release -Dgpg.passphrase="$GPG_PASSPHRASE" $KEYARG clean deploy |
| 332 | +- git push -u origin "rel-$VERSION" # optional; useful for PRs or provenance |
| 333 | + |
| 334 | +If fixes occur after tagging |
| 335 | +- git tag -d "release/$VERSION" |
| 336 | +- git tag -a "release/$VERSION" -m "release $VERSION" |
| 337 | +- git push -f origin "release/$VERSION" |
| 338 | + |
| 339 | +Notes |
| 340 | +- .env holds VERSION, GPG_PASSPHRASE, and optionally GPG_KEYNAME. It should not be committed. |
| 341 | +- No SNAPSHOT bump to main. Version selection is driven by the tag and GitHub Release. |
| 342 | +- The release profile (-P release) scopes signing/publishing; daily jobs don’t invoke GPG. |
0 commit comments