win-desktop-utils 0.5.1

Windows desktop helpers for shell, shortcuts, app data, elevation, and single-instance Rust apps
Documentation
name: CI

on:
  push:
  pull_request:

jobs:
  msrv:
    runs-on: windows-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust MSRV
        uses: dtolnay/rust-toolchain@1.82.0

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2

      - name: Check MSRV
        run: cargo check --all-targets

  windows:
    runs-on: windows-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2

      - name: Check xtask
        run: cargo check -p xtask

      - name: Check formatting
        run: cargo fmt --all -- --check

      - name: Run tests
        run: cargo test

      - name: Run clippy
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Check examples
        run: cargo check --examples

      - name: Check documentation
        run: cargo xtask docs-check

      - name: Check feature sets
        run: cargo xtask feature-check

      - name: Verify package
        run: cargo package

      - name: Install cargo-deny
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-deny

      - name: Check dependency policy
        run: cargo deny check

      - name: Install cargo-semver-checks
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-semver-checks

      - name: Check public API semver
        run: cargo semver-checks check-release

  non-windows:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy

      - name: Cache cargo
        uses: Swatinem/rust-cache@v2

      - name: Check non-Windows stubs
        run: cargo check --all-targets --all-features

      - name: Test non-Windows stubs
        run: cargo test --lib --all-features

      - name: Lint non-Windows stubs
        run: cargo clippy --all-targets --all-features -- -D warnings

      - name: Check empty feature set on non-Windows
        run: cargo check --no-default-features