rust-switcher 1.0.12

Windows keyboard layout switcher and text conversion utility
Documentation
name: CI

on:
  pull_request:
    branches: [dev, main]
  push:
    branches: [dev, main]

permissions:
  contents: read

concurrency:
  group: ci-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  fmt:
    name: fmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          persist-credentials: false
      - name: Install Rust toolchain (nightly)
        uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9
        with:
          toolchain: nightly
          components: rustfmt
      - name: Rust cache
        uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
      - name: Cargo fmt
        run: cargo +nightly fmt --all -- --check

  clippy-lib-tests:
    name: clippy-lib-tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          persist-credentials: false
      - name: Install Rust toolchain (nightly)
        uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9
        with:
          toolchain: nightly
          components: clippy
      - name: Rust cache
        uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
      - name: Cargo clippy (core lib/tests only)
        run: cargo +nightly clippy --lib --tests -- -D warnings

  test-lib-tests:
    name: test-lib-tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          persist-credentials: false
      - name: Install Rust toolchain (nightly)
        uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9
        with:
          toolchain: nightly
      - name: Rust cache
        uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
      - name: Cargo test (core lib/tests only)
        run: cargo +nightly test --lib --tests --locked

  windows-full:
    name: windows-full
    runs-on: windows-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          persist-credentials: false
      - name: Install Rust toolchain (nightly)
        uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9
        with:
          toolchain: nightly
          components: rustfmt, clippy
      - name: Rust cache
        uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
      - name: Cargo fmt --check
        run: cargo +nightly fmt --check
      - name: Cargo clippy
        run: cargo +nightly clippy --all-targets --all-features -- -D warnings
      - name: Cargo build (debug-tracing)
        run: cargo +nightly build --features debug-tracing
      - name: Cargo test --locked
        run: cargo +nightly test --locked