Skip to content

merge: hat

merge: hat #123

Workflow file for this run

name: Build on Windows
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
build-win:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install MSYS2
run: |
Invoke-WebRequest "https://repo.msys2.org/distrib/msys2-x86_64-latest.exe" -OutFile msys2-installer.exe
.\msys2-installer.exe in --confirm-command --accept-messages --root C:/msys64-bidrum
- name: Install dependencies
run: |
C:\msys64-bidrum\usr\bin\bash.exe -l -c "pacman --noconfirm -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-ffmpeg mingw-w64-x86_64-clang mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-pkg-config mingw-w64-x86_64-gtk4 mingw-w64-x86_64-gettext mingw-w64-x86_64-libxml2 mingw-w64-x86_64-librsvg mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gcc"
- name: Prepare GNU toolchain for rust
run: |
rustup toolchain install stable-gnu
rustup target add x86_64-pc-windows-gnu
rustup set default-host x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu
- name: Create cargo config
run: |
mkdir .cargo
touch .cargo/config.toml
echo "[target.x86_64-pc-windows-gnu]" > .cargo/config.toml
echo "linker = `"C:`\`\msys64-bidrum`\`\mingw64`\`\bin`\`\gcc.exe`"" >> .cargo/config.toml
echo "ar = `"C:`\`\msys64-bidrum`\`\mingw64`\`\bin`\`\ar.exe`"" >> .cargo/config.toml
- name: Build
run: |
$env:PATH += ";C:\msys64-bidrum\mingw64\bin;C:\msys64-bidrum\mingw64\include;C:\msys64-bidrum\mingw64\lib;"
cargo build --verbose --target x86_64-pc-windows-gnu
cargo build --release --verbose --target x86_64-pc-windows-gnu
- name: Upload compiled binaries
uses: actions/upload-artifact@v4
with:
name: windows-release-binary
path: ./target