From fc11a42b635e5644b0f41b6f9e3f8d5ce60fcdcb Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Tue, 16 Jun 2026 07:11:11 +0000 Subject: [PATCH] ci(windows): build/clippy/fmt/test workflow on the self-hosted Windows runner runs-on: windows-amd64 (home-windows-1, host mode). Build + clippy(-D warnings) + fmt + test the WinUI 3 client. The toolchain is baked into the runner's daemon env; the workflow only sets CARGO_WORKSPACE_DIR=${{ github.workspace }} (windows-reactor's build.rs needs it). Triggers on changes to the windows crate / core / Cargo / this workflow. Co-Authored-By: Claude Opus 4.8 --- .gitea/workflows/windows.yml | 59 ++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .gitea/workflows/windows.yml diff --git a/.gitea/workflows/windows.yml b/.gitea/workflows/windows.yml new file mode 100644 index 0000000..80c2956 --- /dev/null +++ b/.gitea/workflows/windows.yml @@ -0,0 +1,59 @@ +# Windows client CI — runs on the self-hosted Windows runner (home-windows-1, host mode; see +# scripts/ci/setup-windows-runner.ps1). Build + clippy + fmt + test the WinUI 3 client +# (windows-reactor + D3D11/SwapChainPanel + WASAPI + SDL3) on x86_64-pc-windows-msvc. +# +# The MSVC/WinUI/FFmpeg toolchain (cargo/rustup on ASCII paths, NASM, CMake, LLVM, FFmpeg, +# CARGO_HOME, CMAKE_POLICY_VERSION_MINIMUM, …) is baked into the runner's daemon env, so jobs +# inherit it. The one per-checkout var is CARGO_WORKSPACE_DIR — windows-reactor's build.rs +# unwraps it and stages the Windows App SDK NuGets + winmd under it. +name: windows + +on: + push: + branches: [main] + paths: + - 'crates/punktfunk-client-windows/**' + - 'crates/punktfunk-core/**' + - 'Cargo.lock' + - 'Cargo.toml' + - '.gitea/workflows/windows.yml' + pull_request: + paths: + - 'crates/punktfunk-client-windows/**' + - 'crates/punktfunk-core/**' + - 'Cargo.lock' + - 'Cargo.toml' + - '.gitea/workflows/windows.yml' + workflow_dispatch: + +jobs: + build: + runs-on: windows-amd64 + timeout-minutes: 60 + env: + # windows-reactor's build.rs `.unwrap()`s this and writes /temp + /winmd under it. + CARGO_WORKSPACE_DIR: ${{ github.workspace }} + defaults: + run: + shell: powershell + steps: + - uses: actions/checkout@v4 + + - name: Toolchain + workspace path + run: | + rustc --version + cargo --version + node --version + Write-Output "workspace: $env:GITHUB_WORKSPACE" + + - name: Build + run: cargo build -p punktfunk-client-windows + + - name: Clippy (-D warnings) + run: cargo clippy -p punktfunk-client-windows --all-targets -- -D warnings + + - name: Rustfmt check + run: cargo fmt -p punktfunk-client-windows -- --check + + - name: Test + run: cargo test -p punktfunk-client-windows