name: Check licenses
on:
  workflow_dispatch:
  push:
    branches: [main]
    paths:
      - "**.go"
      - "**/go.mod"
      - "**/go.sum"
  pull_request:
    paths:
      - "**.go"
      - "**/go.mod"
      - "**/go.sum"

jobs:
  check:
    runs-on: ubuntu-22.04
    steps:
      - name: Checkout
        uses: actions/checkout@755da8c3cf115ac066823e79a1e1788f8940201b # v3.2.0
        with:
          ref: ${{ !github.event.pull_request.head.repo.fork && github.head_ref || '' }}

      - name: Setup Go environment
        uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568 # v3.5.0
        with:
          go-version: "1.19.4"
          cache: true

      - name: Install go-licenses
        run: go install github.com/google/go-licenses@latest

      - name: Check licenses
        run: hack/check-licenses.sh

      - name: Check for files without license header
        run: "! grep -rL --include='*.go' -e'SPDX-License-Identifier: AGPL-3.0-only' -e'DO NOT EDIT' | grep ''"
