name: Race tests

on:
  push:
    branches: [ main ]
    paths:
      - 'go/**'
  workflow_dispatch:

jobs:
  racetests:
    name: Go race tests
    defaults:
      run:
        shell: bash
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-22.04 ]
        dolt_fmt: [ "__DOLT__" ]
    steps:
    - uses: actions/checkout@v4
    - name: Set up Go 1.x
      uses: actions/setup-go@v5
      with:
        go-version-file: go/go.mod
      id: go
    - name: Test engine
      working-directory: ./go
      run: |
        DOLT_SKIP_PREPARED_ENGINETESTS=1 go test -vet=off -v -race -timeout 30m github.com/dolthub/dolt/go/libraries/doltcore/sqle/enginetest
      env:
        DOLT_DEFAULT_BIN_FORMAT: ${{ matrix.dolt_fmt }}
    - name: Test concurrentmap
      working-directory: ./go
      run: |
        go test -vet=off -v -race -timeout 1m github.com/dolthub/dolt/go/libraries/utils/concurrentmap
