name: Test Go on: pull_request: branches: [ main ] paths: - 'go/**' - '.github/workflows/ci-go-tests.yaml' 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@v6 - name: Set up Go toolchain id: toolchain uses: ./.github/actions/setup-go-toolchain - name: Test All working-directory: ./go run: | files=$(go list ./...) SAVEIFS=$IFS IFS=$'\n' file_arr=($files) IFS=$SAVEIFS if [ "$MATRIX_OS" == 'windows-latest' ]; then export PATH=$(cygpath -u "$MSYS2_LOCATION"/ucrt64/bin):"$PATH" fi for (( i=0; i<${#file_arr[@]}; i++ )) do # Skip binlog tests as they run in a separate CI job if [[ "${file_arr[$i]}" == *binlogreplication* ]]; then echo "Skipping binlog package: ${file_arr[$i]} (runs in separate CI)" continue fi 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 }} MSYS2_LOCATION: ${{ steps.toolchain.outputs.msys2-location }} 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@v6 - name: Set up Go toolchain id: toolchain uses: ./.github/actions/setup-go-toolchain - name: Test All working-directory: ./go run: | if [ "$MATRIX_OS" == 'windows-latest' ]; then export PATH=$(cygpath -u "$MSYS2_LOCATION"/ucrt64/bin):"$PATH" fi go test -vet=off -timeout 30m ./libraries/doltcore/sqle/integration_test env: MATRIX_OS: ${{ matrix.os }} DOLT_TEST_RUN_NON_RACE_TESTS: "true" MSYS2_LOCATION: ${{ steps.toolchain.outputs.msys2-location }}