ci: put the launcher's update pointer in a release, and delete the dist branch
Some checks failed
CI / linux-portable (push) Failing after 3m22s
CI / windows-gate (push) Successful in 5m27s
CI / release (push) Has been skipped

The dist branch existed to carry ~120 MB payloads that could not go on main.
Once payloads became release attachments it held one 500-byte manifest.json,
so it was a whole branch for a reason that no longer applied.

The pointer is now a release asset too: each publish recreates a one-asset
 release naming the versioned build. Forgejo has no
/releases/latest/download/ route (404), so a pointer is still required — but
keeping it in a release means nothing about distribution lives in git: no
payload branch, no bot commits on main, and no push that could retrigger the
pipeline (which is why writing the manifest to main was not the answer either).

Recreating the tag deletes the old release AND its tag; the tag outlives its
release and would otherwise block recreation.

Versioned releases are retained, so older builds stay downloadable.
tools/publish-dist.ps1 is removed — publishing is CI's job now.
This commit is contained in:
Erik 2026-08-19 14:40:41 +02:00
parent 353231fe6e
commit ff01423f3f
6 changed files with 87 additions and 218 deletions

View file

@ -91,14 +91,12 @@ public sealed class ReleaseManifestClientTests
Assert.Equal("2.1.0", manifest.Version.Value);
Assert.Equal(client.LongLength, manifest.RequireClient("win-x64").Size);
// Alpha distribution feed: the PUBLIC Gitea repo's `dist` branch
// (GitHub stays private, so its Releases feed cannot serve anonymous
// friend installs, and its 100 MB per-file limit could not carry the
// launcher payload). tools/publish-bin.ps1 writes the payloads and
// tools/publish-dist.ps1 pushes that branch — all three must agree on
// this URL.
// Alpha distribution feed: the manifest asset of the fixed `latest`
// release. Nothing about distribution lives in git — the CI release job
// republishes this pointer after each versioned release, so it must
// agree with this URL.
Assert.Equal(
"https://git.snakedesert.se/erik/acdream/raw/branch/dist/bin/manifest.json",
"https://git.snakedesert.se/erik/acdream/releases/download/latest/manifest.json",
ReleaseManifestClient.ProductionManifestUri.AbsoluteUri);
Assert.Equal(Uri.UriSchemeHttps, ReleaseManifestClient.ProductionManifestUri.Scheme);
}