abpl 0.1.4

A collection of Rust boilerplate: a reloadable-systemd-service lifecycle helper, a hot-reloading axum wrapper, a serializable/typed error derive macro, and small utility newtypes.
Documentation
name: CI

on:
  push:
    branches: [main]
  pull_request:

jobs:
  feature-matrix:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - uses: cachix/install-nix-action@v31
        with:
          nix_path: nixpkgs=channel:nixos-26.05

      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: cargo-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            cargo-${{ runner.os }}-

      - run: ./scripts/feature-matrix.sh

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - uses: cachix/install-nix-action@v31
        with:
          nix_path: nixpkgs=channel:nixos-26.05

      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: cargo-clippy-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            cargo-clippy-${{ runner.os }}-

      - run: nix-shell --run "cargo clippy --workspace --all-features --all-targets -- -D warnings"

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5

      - uses: cachix/install-nix-action@v31
        with:
          nix_path: nixpkgs=channel:nixos-26.05

      - run: nix-shell --run "cargo fmt --all -- --check"