aam 0.2.1

AAM CLI is a CLI for AAM (learn more about AAM at https://aam.ininids.in.rs)
name: CI

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]

permissions:
  contents: write

env:
  CARGO_TERM_COLOR: always

jobs:
  format:
    name: Check formatting
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt
      - name: Check formatting
        run: cargo fmt --check

  lint:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy
      - name: Run clippy
        run: cargo clippy -- -D warnings

  test:
    name: Run tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
      - name: Run tests
        run: cargo test --verbose

  generate-credits:
    name: Generate CREDITS.html
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
      - name: Install cargo-about
        run: cargo install cargo-about --locked --features="cli"
      - name: Generate CREDITS.html
        run: cargo about generate about.hbs -o CREDITS.html
      - name: Upload CREDITS.html
        uses: actions/upload-artifact@v4
        with:
          name: CREDITS
          path: CREDITS.html
          retention-days: 30
      - name: Commit CREDITS.html
        if: github.event_name == 'push' && github.ref == 'refs/heads/main'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add CREDITS.html
          git diff --staged --quiet || (git commit -m "chore: update CREDITS.html" && git push)