on: [push]
jobs:
  build:
    runs-on: nixos
    steps:
      - uses: https://git.salame.cl/actions/checkout@v4
      - name: Build Package
        run: |
          nix --version
          nix build --print-build-logs .#
  check:
    needs: build # we use the built binaries in the checks
    runs-on: nixos
    strategy:
      matrix:
        check:
          - treefmt
          - clippy
          - nextest
          - module-ipv4-test
          - module-ipv6-test
          - module-nginx-test
          - module-ipv4-only-test
          - module-ipv6-only-test
    steps:
      - uses: https://git.salame.cl/actions/checkout@v4
      - name: Check
        run: |
          set -x
          nix --version
          # shellcheck disable=SC2016
          nix build --print-build-logs '.#checks.x86_64-linux.${{ matrix.check }}'
  report-size:
    runs-on: nixos
    needs: build
    steps:
      - uses: https://git.salame.cl/actions/checkout@v4
      - run: nix --version
      - name: Generate size report
        uses: https://git.salame.cl/jalil/nix-flake-outputs-size@main
        with:
          comment-on-pr: ${{ github.ref_name != 'main' }}
          generate-artifact: ${{ github.ref_name == 'main' }}
          do-comparison: true
          job-name: report-size