on: [push, pull_request]
name: test
jobs:
  test:
    strategy:
      fail-fast: false
      matrix:
        go-version: [1.22.x,1.23.x,1.24.x]
        platform: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.platform }}
    steps:
    - name: Install Go
      uses: actions/setup-go@v4
      with:
        go-version: ${{ matrix.go-version }}
    - name: Checkout code
      uses: actions/checkout@v3
    - name: Run lints
      uses: golangci/golangci-lint-action@v6
      with:
        version: latest
      if: "matrix.platform == 'ubuntu-latest'" # gofmt linter fails on Windows for CRLF problems
    - name: Run tests
      env:
        GOLDMARK_TEST_TIMEOUT_MULTIPLIER: 5
      run: go test -v ./... -covermode=count -coverprofile=coverage.out -coverpkg=./...
    - name: Install goveralls
      run: go install github.com/mattn/goveralls@latest
    - name: Send coverage
      if: "matrix.platform == 'ubuntu-latest'"
      env:
        COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: goveralls -coverprofile=coverage.out -service=github
