identicon-rs 7.2.1

identicon-rs is a library built around custom generation of identicon images.
Documentation
name: Rust

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

env:
  CARGO_TERM_COLOR: always

jobs:
  check:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        features:
          - ""
          - "--no-default-features"
          - "--no-default-features --features png"
          - "--no-default-features --features jpeg"
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - name: Check
      run: cargo check --verbose ${{ matrix.features }}

  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        features:
          - ""
          - "--no-default-features"
          - "--no-default-features --features png"
          - "--no-default-features --features jpeg"
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
    - name: Run tests
      run: cargo test --verbose ${{ matrix.features }}

  fmt:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: rustfmt
    - name: Run format check
      run: cargo fmt --all -- --check

  clippy:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        features:
          - ""
          - "--no-default-features"
          - "--no-default-features --features png"
          - "--no-default-features --features jpeg"
    steps:
    - uses: actions/checkout@v4
    - uses: dtolnay/rust-toolchain@stable
      with:
        components: clippy
    - name: Run clippy
      run: cargo clippy ${{ matrix.features }}

  # Tool: https://github.com/EmbarkStudios/cargo-deny
  # Action: https://github.com/EmbarkStudios/cargo-deny-action
  cargo-deny:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        checks:
          - advisories
          - bans licenses sources
    # Prevent sudden announcement of a new advisory from failing ci:
    continue-on-error: ${{ matrix.checks == 'advisories' }}
    steps:
    - uses: actions/checkout@v4
    - uses: EmbarkStudios/cargo-deny-action@v2
      with:
        log-level: info
        command: check ${{ matrix.checks }}
        command-arguments: --show-stats