agent-seat-linux 1.0.0

App-scoped Wayland capture and input for Linux automation agents
Documentation
name: Release

on:
  push:
    tags:
      - "v[0-9]+.[0-9]+.[0-9]+"

permissions:
  contents: read

jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Linux development dependencies
        run: sudo apt-get update && sudo apt-get install -y libwayland-dev libxkbcommon-dev
      - name: Install stable toolchain
        run: rustup toolchain install stable --profile minimal --no-self-update
      - name: Format
        run: cargo fmt --all -- --check
      - name: Clippy
        run: cargo clippy --all-targets -- -D warnings
      - name: Test
        run: cargo test --all-targets
      - name: Package
        run: cargo package --list

  publish:
    needs: verify
    runs-on: ubuntu-latest
    permissions:
      id-token: write # required for OIDC trusted-publishing token exchange
      contents: read
    steps:
      - uses: actions/checkout@v4
      - name: Install Linux development dependencies
        run: sudo apt-get update && sudo apt-get install -y libwayland-dev libxkbcommon-dev
      - name: Install stable toolchain
        run: rustup toolchain install stable --profile minimal --no-self-update
      - name: Authenticate with crates.io (OIDC trusted publishing)
        id: auth
        uses: rust-lang/crates-io-auth-action@v1
      - name: Publish to crates.io
        run: cargo publish
        env:
          CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}