mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-03-07 11:59:59 +03:00
The gtk frontend can now be built in windows! The github workflow is updated to build GTK and add it to the releases section.
113 lines
3.5 KiB
YAML
113 lines
3.5 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main" ]
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
build-linux:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install libx11-dev libxtst-dev
|
|
sudo apt-get install libadwaita-1-dev libgtk-4-dev
|
|
- name: Build
|
|
run: cargo build --verbose
|
|
- name: Run tests
|
|
run: cargo test --verbose
|
|
- name: Check Formatting
|
|
run: cargo fmt --check
|
|
- name: Clippy
|
|
run: cargo clippy --all-features --all-targets -- --deny warnings
|
|
- name: Upload build artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: lan-mouse
|
|
path: target/debug/lan-mouse
|
|
|
|
build-windows:
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
# needed for cache restore
|
|
- name: create gtk dir
|
|
run: mkdir C:\gtk-build\gtk\x64\release
|
|
- uses: actions/cache@v3
|
|
id: cache
|
|
with:
|
|
path: c:/gtk-build/gtk/x64/release/**
|
|
key: gtk-windows-build
|
|
restore-keys: gtk-windows-build
|
|
- name: Update path
|
|
run: |
|
|
echo "PKG_CONFIG=C:\gtk-build\gtk\x64\release\bin\pkgconf.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
echo "C:\pkg-config-lite-0.28-1\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
echo "C:\gtk-build\gtk\x64\release\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
echo $env:GITHUB_PATH
|
|
echo $env:PATH
|
|
- name: Install dependencies
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
# choco install msys2
|
|
# choco install visualstudio2022-workload-vctools
|
|
# choco install pkgconfiglite
|
|
pipx install gvsbuild
|
|
# see https://github.com/wingtk/gvsbuild/pull/1004
|
|
Move-Item "C:\Program Files\Git\usr\bin" "C:\Program Files\Git\usr\notbin"
|
|
Move-Item "C:\Program Files\Git\bin" "C:\Program Files\Git\notbin"
|
|
gvsbuild build --msys-dir=C:\msys64 gtk4 libadwaita librsvg
|
|
Move-Item "C:\Program Files\Git\usr\notbin" "C:\Program Files\Git\usr\bin"
|
|
Move-Item "C:\Program Files\Git\notbin" "C:\Program Files\Git\bin"
|
|
- name: Build
|
|
run: cargo build --verbose
|
|
- name: Run tests
|
|
run: cargo test --verbose
|
|
- name: Check Formatting
|
|
run: cargo fmt --check
|
|
- name: Clippy
|
|
run: cargo clippy --all-features --all-targets -- --deny warnings
|
|
- name: Copy Gtk Dlls
|
|
run: Get-Childitem -Path "C:\\gtk-build\\gtk\\x64\\release\\bin\\*.dll" -File -Recurse | Copy-Item -Destination "target\\debug"
|
|
- name: Upload build artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: lan-mouse-windows
|
|
path: |
|
|
target/debug/lan-mouse.exe
|
|
target/debug/*.dll
|
|
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: install dependencies
|
|
run: brew install gtk4 libadwaita
|
|
- name: Build
|
|
run: cargo build --verbose
|
|
- name: Run tests
|
|
run: cargo test --verbose
|
|
- name: Check Formatting
|
|
run: cargo fmt --check
|
|
- name: Clippy
|
|
run: cargo clippy --all-features --all-targets -- --deny warnings
|
|
- name: Upload build artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: lan-mouse-macos
|
|
path: target/debug/lan-mouse
|