name: Check Compatibility

on:
  pull_request:
    branches: [ main ]
    paths:
      - 'go/**'
      - 'integration-tests/**'

concurrency:
  group: ci-compatibility-tests-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: true

jobs:
  test:
    name: Compatibility Test
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: true
      matrix:
        os: [ ubuntu-22.04 ]
    steps:
      - name: Setup Go 1.x
        uses: actions/setup-go@v3
        with:
          go-version: ^1.21
        id: go
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: ^16
      - name: Create CI Bin
        run: |
          mkdir -p ./.ci_bin
          echo "$(pwd)/.ci_bin" >> $GITHUB_PATH
      - name: Install Bats
        run: |
          npm i bats
          echo "$(pwd)/node_modules/.bin" >> $GITHUB_PATH
        working-directory: ./.ci_bin
      - name: Install Dolt
        working-directory: ./go
        run: |
          go build -mod=readonly -o ../.ci_bin/dolt ./cmd/dolt/.
      - name: Setup Dolt Config
        run: |
          dolt config --global --add user.name 'DoltHub Actions'
          dolt config --global --add user.email 'actions@dolthub.com'
      - name: Test all
        run: ./runner.sh
        working-directory: ./integration-tests/compatibility
