diff --git a/workflow-templates/assets/check-go-task/Taskfile.yml b/workflow-templates/assets/check-go-task/Taskfile.yml index 0df462fe..dc5bfd41 100644 --- a/workflow-templates/assets/check-go-task/Taskfile.yml +++ b/workflow-templates/assets/check-go-task/Taskfile.yml @@ -42,3 +42,9 @@ tasks: exit 1 fi - golangci-lint run + + go:check-license-headers: + desc: verify presence of license headers and exit with non-zero code if missing + cmds: + - go install github.com/google/addlicense@v1.2.0 + - addlicense -check $(find . -name "*.go" -type f -print0 | xargs -0) diff --git a/workflow-templates/check-go-task.yml b/workflow-templates/check-go-task.yml index eeb8860c..fefb1f9d 100644 --- a/workflow-templates/check-go-task.yml +++ b/workflow-templates/check-go-task.yml @@ -198,3 +198,30 @@ jobs: git diff \ --color \ --exit-code + + check-license-headers: + name: check-license-headers (${{ matrix.module.path }}) + needs: run-determination + if: needs.run-determination.outputs.result == 'true' + runs-on: ubuntu-latest + + strategy: + fail-fast: false + + matrix: + module: + - path: ./ + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Install Go + uses: actions/setup-go@v6 + with: + go-version-file: ${{ matrix.module.path }}/go.mod + + - name: Check license headers + env: + GO_MODULE_PATH: ${{ matrix.module.path }} + run: go tool task go:check-license-headers