infinipaint/docs/windows-runner.md
copilot cdc4c5cb30
Some checks failed
Windows Release / windows-x86_64 (push) Failing after 1h12m0s
Add Windows portable auto-update from Forgejo continuous releases.
Poll windows-continuous by git SHA, download the matching zip, and apply it in place so friends stay current without manual installs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-12 12:29:49 +01:00

55 lines
1.9 KiB
Markdown

# 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** (`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)
https://forgejo.fsociety00.cc/copilot/infinipaint/releases/tag/windows-continuous
Portable zip → extract → run `infinipaint.exe`.
### Auto-update (portable)
Windows builds embed the short git SHA at configure time. On startup they poll the
public Forgejo API for tag `windows-continuous`. If the release commit differs,
a dialog offers **Download and install update** (downloads the zip, extracts over
the install folder via a helper script after quit, then restarts). Toggle via
Settings → check for updates.
## Workflows
| 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 |
Forgejo repo secret: **`GH_BUILDER_TOKEN`** (GitHub PAT with `actions:write` /
`contents:read` on the private mirror).
GitHub Actions secret: **`FORGEJO_TOKEN`** (Forgejo PAT with release write on
`copilot/infinipaint`).
## Tray
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 push origin main # Forgejo (public)
git push github main # private builder
```
Keep GitHub **private**.