# 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`. ## 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**.