litra 3.3.0

Control Logitech Litra lights from the command line, Model Context Protocol (MCP) clients and Rust applications
Documentation
name: pre-commit

on:
  push:
  pull_request:

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
      - name: Install libudev-dev
        run: sudo apt-get update && sudo apt-get install -y libudev-dev

      - name: Check out repository
        uses: actions/checkout@v6
        with:
          fetch-depth: 2

      - name: Set up Python
        uses: actions/setup-python@v6

      - name: Use Rust 1.92.0
        run: rustup override set 1.92.0

      - run: rustup component add clippy rustfmt

      - uses: Swatinem/rust-cache@v2

      - name: Detect code style issues
        uses: pre-commit/action@v3.0.1
        env:
          SKIP: no-commit-to-branch

      - name: Generate patch file
        if: failure()
        run: |
          git diff-index -p HEAD > "${PATCH_FILE}"
          [ -s "${PATCH_FILE}" ] && echo "UPLOAD_PATCH_FILE=${PATCH_FILE}" >> "${GITHUB_ENV}"
        env:
          PATCH_FILE: pre-commit.patch

      - name: Upload patch artifact
        if: failure() && env.UPLOAD_PATCH_FILE != null
        uses: actions/upload-artifact@v6
        with:
          name: ${{ env.UPLOAD_PATCH_FILE }}
          path: ${{ env.UPLOAD_PATCH_FILE }}