---
name: Go Tests
on:  # yamllint disable-line rule:truthy
  push:
    branches:
      - "master"
      - "[0-9]+.[0-9]+"
      - "[0-9]+.[0-9]+-stable"
    paths-ignore:
      - '**/*.md'
      - '.github/**'
  pull_request:
    branches:
      - "master"
      - "[0-9]+.[0-9]+"
      - "[0-9]+.[0-9]+-stable"
    paths-ignore:
      - '**/*.md'
      - '.github/**'

jobs:
  test:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.event.pull_request.head.sha }}
      - name: Test
        run: |
          make test
      - name: Test (TPM Required)
        run: |
          bash tests/tpm/prep-and-test.sh
      - name: Report test results as Annotations
        if: ${{ always() }}
        uses: guyarb/golang-test-annoations@v0.6.0
        with:
          test-results: dist/amd64/results.json
      - name: Store raw test results
        if: ${{ always() }}
        uses: actions/upload-artifact@v4
        with:
          name: 'test-report'
          path: ${{ github.workspace }}/dist
      - name: Get code coverage
        uses: codecov/codecov-action@v3