elint 0.1.2

Erlang code linter
Documentation
name: CI

on: [push]

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo check --all-targets

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: rustup update stable
      - run: rustup default stable
      - run: cargo test --all

  msrv:
    name: MSRV
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: rustup toolchain install 1.96 --profile minimal
      - run: rustup default 1.96
      - run: cargo build --all-targets

  lints:
    name: Lints
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: rustup update stable
      - run: rustup default stable
      - run: rustup component add rustfmt clippy
      - run: cargo fmt --all -- --check
      - run: cargo clippy --all-targets -- -D warnings
      - name: Doc
        env:
          RUSTDOCFLAGS: -D warnings
        run: cargo doc --no-deps

  efmt:
    name: efmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install efmt
        run: |
          set -euo pipefail
          gh release download --repo sile/efmt --pattern "efmt-*.x86_64-unknown-linux-musl"
          mkdir -p "$HOME/.local/bin"
          install -m 0755 efmt-*.x86_64-unknown-linux-musl "$HOME/.local/bin/efmt"
          echo "$HOME/.local/bin" >> "$GITHUB_PATH"
      - name: Check rule fixtures
        run: |
          set -euo pipefail
          efmt -c $(git ls-files 'rules/**/*.erl')