name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: Build ${{ matrix.label }}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-pc-windows-msvc
label: Windows x64
- target: i686-pc-windows-msvc
label: Windows x86
- target: aarch64-pc-windows-msvc
label: Windows ARM64
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Build
run: cargo build --release --target ${{ matrix.target }}
test:
name: Test Windows x64
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- name: Build x64 release binary
run: cargo build --release --target x86_64-pc-windows-msvc
- name: Run full Rust unit tests
run: cargo test --all-targets
- name: Run PR smoke tests
shell: pwsh
run: |
$exe = (Resolve-Path "target\x86_64-pc-windows-msvc\release\psmux.exe").Path
$env:PSMUX_EXE = $exe
.\tests\run_smoke_integration.ps1