diff --git a/.github/workflows/pr34-windows-smoke.yml b/.github/workflows/pr34-windows-smoke.yml new file mode 100644 index 0000000..7ff0694 --- /dev/null +++ b/.github/workflows/pr34-windows-smoke.yml @@ -0,0 +1,58 @@ +name: PR34 Windows Smoke + +on: + workflow_dispatch: + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: "--cfg reqwest_unstable" + +jobs: + windows-release-smoke: + name: Build and package Windows binaries + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: dtolnay/rust-toolchain@stable + with: + targets: x86_64-pc-windows-msvc + + - uses: Swatinem/rust-cache@v2 + with: + key: pr34-windows-msvc + + - name: Install NASM + shell: pwsh + run: | + choco install nasm -y + echo "C:\Program Files\NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + + - name: Build Windows release binaries + run: cargo build --release --target x86_64-pc-windows-msvc + + - name: Smoke executables + shell: pwsh + run: | + target\x86_64-pc-windows-msvc\release\webclaw.exe --version + target\x86_64-pc-windows-msvc\release\webclaw-mcp.exe --help + target\x86_64-pc-windows-msvc\release\webclaw-server.exe --help + + - name: Package as zip + shell: bash + run: | + tag="v0.0.0-pr34-smoke" + target="x86_64-pc-windows-msvc" + staging="webclaw-${tag}-${target}" + mkdir "$staging" + cp "target/${target}/release/webclaw.exe" "$staging/" + cp "target/${target}/release/webclaw-mcp.exe" "$staging/" + cp "target/${target}/release/webclaw-server.exe" "$staging/" + cp README.md LICENSE "$staging/" + 7z a -tzip "$staging.zip" "$staging" + test -s "$staging.zip" + + - uses: actions/upload-artifact@v4 + with: + name: pr34-windows-msvc-smoke + path: webclaw-v0.0.0-pr34-smoke-x86_64-pc-windows-msvc.zip