release automation: gitea actions build every push and publish tagged releases (version from the tag, packages, sha256sums, changelog section as text), simple 5-step install guide in the readme

This commit is contained in:
MineTec committed 2026-11-07 16:47:42 +01:00
1 parent f5fd411592
commit a64df88c77
7 files changed
+262 -9

No files matched your search

+22
View File
@@ -84,3 +84,25 @@ Maintenance notes: [notes/editor-manual.md](../notes/editor-manual.md).
[`notes/`](../notes/README.md) is the project's lab notebook: one file per format, editor area and
mod, with addresses in `groove.exe`, confidence levels, what was verified in the game and known
limits. Process material (agent briefs, review reports) is in [`notes/dev/`](../notes/dev/).
## Releasing
Releases are built by Gitea Actions ([.gitea/workflows/release.yml](../.gitea/workflows/release.yml)):
1. Add a `## <version> – …` section at the top of [CHANGELOG.md](../CHANGELOG.md) (it becomes the
release text; the workflow fails if it is missing).
2. `git tag v<version> && git push origin v<version>`
The workflow builds and tests (tests that need the game CD skip themselves on the runner), runs
`packageAll` with `-PreleaseVersion=<version>` (the tag decides the version; without it
`build.gradle`'s default is used), writes `SHA256SUMS.txt` and creates the release with the four
packages via [tools/release/publish_gitea.py](../tools/release/publish_gitea.py) (standard library
only; re-running replaces files of the same name). [.gitea/workflows/build.yml](../.gitea/workflows/build.yml)
builds every push.
Requirements on the Gitea side: Actions enabled (`[actions] ENABLED = true`), an `act_runner` with
the label `ubuntu-latest` (an image with `python3`, `curl`/network access – the build downloads the
Temurin JDK/jmods and launch4j), and an attachment size limit above ~60 MB (`[attachment] MAX_SIZE`
in `app.ini`). If the built-in token may not create releases, add a repository secret
`RELEASE_TOKEN` with write access. Locally the same packages come from
`./gradlew -PreleaseVersion=<version> packageAll` (output in `build/dist`).