name: Test on: [pull_request] concurrency: group: test-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: test: strategy: fail-fast: false matrix: platform: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.platform }} steps: - name: Set timezone for Unix uses: szenius/set-timezone@v2.0 with: timezoneLinux: "America/Los_Angeles" timezoneMacos: "America/Los_Angeles" - name: Set timezone for Windows if: ${{ matrix.platform == 'windows-latest' }} shell: pwsh run: | tzutil /s "Pacific Standard Time" tzutil /g Get-TimeZone - name: Checkout code uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.mod id: go - name: Install ICU4C (MacOS) if: ${{ matrix.platform == 'macos-latest' }} run: | dir=$(brew --cellar icu4c) dir="$dir"/$(ls "$dir") echo CGO_CPPFLAGS=-I$dir/include >> $GITHUB_ENV echo CGO_LDFLAGS=-L$dir/lib >> $GITHUB_ENV - name: Install ICU4C (Windows) if: ${{ matrix.platform == 'windows-latest' }} uses: msys2/setup-msys2@v2 with: path-type: inherit msystem: UCRT64 pacboy: icu:p toolchain:p pkg-config:p - name: Build SQL Syntax run: ./build.sh working-directory: ./postgres/parser shell: bash - name: Setup PostgreSQL uses: tj-actions/install-postgresql@v3 with: postgresql-version: 15 - name: Test (MacOS) if: ${{ matrix.platform == 'macos-latest' }} run: go test --timeout=20m -skip="TestReplication" $(go list ./... | grep -v enginetest) - name: Test (Windows) if: ${{ matrix.platform == 'windows-latest' }} shell: msys2 {0} run: go.exe test --timeout=20m -skip="TestReplication" $(go.exe list ./... | grep -v enginetest) - name: Test (Linux) if: ${{ matrix.platform == 'ubuntu-latest' }} # Enginetest harness breaks with race testing, not sure why yet run: go test --timeout=20m -race -skip="TestReplication" $(go list ./... | grep -v enginetest)