Run Windows release orchestration on Forgejo desktop-release
Some checks failed
Windows Release / windows-x86_64 (push) Has been cancelled

Tower runner dispatches/waits on the private GitHub MSVC builder and
verifies the public windows-continuous Forgejo release. Needs
GH_BUILDER_TOKEN on the Forgejo repo.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
copilot 2026-11-07 15:50:33 +01:00
parent 3140f9bb55
commit 166778d451
2 changed files with 111 additions and 164 deletions

View file

@ -1,10 +1,15 @@
# Windows continuous release (GitHub Actions as private builder)
# Windows continuous release (Forgejo → private GitHub builder)
Native InfiniPaint Windows builds need **MSVC** (see `docs/BUILDING.md` +
`windowsinstall/`). There is no Linux cross-build path.
Policy: **Forgejo is the public fork**; GitHub is only a **private** mirror used
to run `windows-latest` CI. Friends download the zip from Forgejo — not GitHub.
Policy:
- **Forgejo** (`copilot/infinipaint`) is the **public** fork and download site.
- **GitHub** (`littlecodedragon/infinipaint`) is a **private** builder mirror only
(`windows-latest` MSVC). Must stay private.
- Tower **`desktop-release`** runs the Forgejo workflow: it dispatches/waits on
the private GitHub build, then checks the public Forgejo release.
## Public download (friends)
@ -12,36 +17,31 @@ https://forgejo.fsociety00.cc/copilot/infinipaint/releases/tag/windows-continuou
Portable zip → extract → run `infinipaint.exe`.
## Workflow
## Workflows
File: `.github/workflows/windows_release.yml`
| File | Runner | Role |
|------|--------|------|
| `.forgejo/workflows/windows_release.yml` | `desktop-release` (Tower) | Orchestrate + verify Forgejo release |
| `.github/workflows/windows_release.yml` | `windows-latest` (private) | Compile + upload Forgejo asset |
| | |
|---|---|
| Trigger | every push to `main` on the private GitHub mirror, plus `workflow_dispatch` |
| Runner | `windows-latest` (GitHub-hosted, MSVC ~195 / VS 18) |
| Build | Conan profile `win-ci` + **Ninja** (avoids CMake&lt;4 vs `Visual Studio 18 2026`) |
| Output | public Forgejo prerelease **`windows-continuous`** (+ private GitHub copy) |
Forgejo repo secret: **`GH_BUILDER_TOKEN`** (GitHub PAT with `actions:write` /
`contents:read` on the private mirror).
Required GitHub Actions secret: `FORGEJO_TOKEN` (Forgejo PAT with release write on
GitHub Actions secret: **`FORGEJO_TOKEN`** (Forgejo PAT with release write on
`copilot/infinipaint`).
Local Tower Windows can keep using `windowsinstall/conan_init_x86_64.bat`
(`conan/profiles/win-x86_64`, MSVC 194). CI generates a `win-ci` profile for
whatever MSVC `windows-latest` ships.
## Tray
## GitHub remote (private builder)
Tower CI job tray (`ci-runner-job-tray.py`) tracks:
- `Forgejo desktop-release` — host unit (orchestrator + APK jobs)
- `Forgejo InfiniPaint Windows` — Forgejo Actions run for this workflow
## Sync remotes
```bash
git remote add github https://github.com/littlecodedragon/infinipaint.git
git push -u github main
git push origin main # Forgejo (public)
git push github main # private builder
```
Keep the repo **private** (Settings → Change visibility, or
`gh repo edit littlecodedragon/infinipaint --visibility private`).
## Forgejo note
`.forgejo/workflows/windows_release.yml` still targets a self-hosted
`windows-release` runner (optional). Primary public zips come from the GitHub
builder → Forgejo release upload above.
Keep GitHub **private**.