name: lint

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  fmt:
    name: rustfmt check
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - name: Install Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1.10.1
        with:
          toolchain: stable
          components: rustfmt

      - name: rustfmt
        uses: actions-rust-lang/rustfmt@v1

  clippy:
    name: clippy check
    runs-on: ubuntu-latest

    env:
      CI: 1
      CARGO_INCREMENTAL: false

    steps:
      - uses: actions/checkout@v4

      - name: Install Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1.10.1
        with:
          toolchain: stable
          components: clippy

      # - name: Create test DBs
      #   run: |
      #     sudo apt-get update && sudo apt-get install sqlite3
      #     cargo install sqlx-cli --no-default-features --features=rustls,sqlite
      #     cd basics/todo
      #     DATABASE_URL="sqlite://./todo.db" sqlx database create
      #     chmod a+rwx todo.db
      #     DATABASE_URL="sqlite://./todo.db" sqlx migrate run

      - name: clippy
        timeout-minutes: 30
        uses: giraffate/clippy-action@v1
        with:
          reporter: "github-pr-check"
          github_token: ${{ secrets.GITHUB_TOKEN }}
          clippy_flags: --workspace --all-features --tests