name: Test Go on: pull_request: branches: [ main ] paths: - 'go/**' workflow_dispatch: concurrency: group: ci-go-tests-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: test: name: Go tests defaults: run: shell: bash runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-22.04, windows-latest] 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 All working-directory: ./go run: | files=$(go list ./...) SAVEIFS=$IFS IFS=$'\n' file_arr=($files) IFS=$SAVEIFS for (( i=0; i<${#file_arr[@]}; i++ )) do echo "Testing Package: ${file_arr[$i]}" if [ "$MATRIX_OS" == 'ubuntu-22.04' ] then if [[ "${file_arr[$i]}" != *enginetest* ]]; then go test -vet=off -timeout 45m -race "${file_arr[$i]}" else echo "skipping enginetests for -race" fi else go test -vet=off -timeout 45m "${file_arr[$i]}" fi succeeded=$(echo "$?") if [ "$succeeded" -ne 0 ]; then echo "Testing failed in package ${file_arr[$i]}" exit 1; fi done env: MATRIX_OS: ${{ matrix.os }} noracetest: name: Go tests - no race defaults: run: shell: bash runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-22.04, windows-latest] 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 All working-directory: ./go run: | go test -vet=off -timeout 30m ./libraries/doltcore/sqle/integration_test env: MATRIX_OS: ${{ matrix.os }} DOLT_TEST_RUN_NON_RACE_TESTS: "true"