---
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.50.4-0ubuntu0.22.04.1
          libsoup-3.0-dev=3.0.7-0ubuntu1
          libwebkit2gtk-4.1-dev=2.50.4-0ubuntu0.22.04.1
          libxdo-dev=1:3.20160805.1-4
      - name: Rust toolchain installation
        uses: dtolnay/rust-toolchain@9bc92bc5598b4f3bec5d910d352094982cb0c3b9 # 1.92.0
        with:
          components: clippy, rustfmt
      - name: code checkout
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
        with:
          fetch-depth: 0
      - name: .env symlink creation
        run: ln -s .env.dev .env
      - name: Tailwind CSS output creation
        run: touch assets/tailwind.css
      - name: rustfmt check
        run: cargo fmt --all --check
      - name: Clippy check
        run: cargo clippy --locked --all-targets --all-features -- --deny warnings
      - name: test check
        run: cargo --locked test --all --all-targets --all-features
