---
name: Rust check

on: # yamllint disable-line rule:truthy
  pull_request:
    types: [opened, edited, reopened, synchronize]

permissions: {}

jobs:
  build:
    name: Rust check
    runs-on: ubuntu-22.04
    permissions:
      contents: read
      pull-requests: read
      packages: read
      statuses: write
    steps:
      - name: dependencies installation
        run: >
          apt-get update && apt-get install -y
          libgtk-3-dev=3.24.33-1ubuntu2.2
          libjavascriptcoregtk-4.1-dev=2.46.4-0ubuntu0.22.04.1
          libsoup-3.0-dev=3.0.7-0ubuntu1
          libwebkit2gtk-4.1-dev=2.46.4-0ubuntu0.22.04.1
          libxdo-dev=1:3.20160805.1-4
      - name: Rust toolchain installation
        uses: dtolnay/rust-toolchain@0579bb9e1907e560c2f263f705f93655a44a07e5
        with:
          components: clippy, rustfmt
      - name: code checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
        with:
          fetch-depth: 0
      - name: npm build
        run: npm install && npm run build
      - name: rustfmt check
        run: cargo fmt --all --check
      - name: Clippy check
        run: cargo clippy --all-targets --all-features -- --deny warnings
      - name: test check
        run: cargo test --all --all-targets --all-features