name: Go Build

on:
  push:
    branches: ["main"]
    paths-ignore:
      - 'patterns/**'
      - '**/*.md'
  pull_request:
    branches: ["main"]
    paths-ignore:
      - 'patterns/**'
      - '**/*.md'

jobs:
  test:
    name: Run tests
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install Nix
        uses: DeterminateSystems/nix-installer-action@main

      - name: Set up Go
        uses: actions/setup-go@v4
        with:
          go-version-file: ./go.mod

      - name: Run tests
        run: go test -v ./...

      - name: Check Formatting
        run: nix flake check
