name: SQL Correctness

on:
  repository_dispatch:
    types: [ sql-correctness ]

jobs:
  correctness:
    runs-on: ubuntu-22.04
    name: Dolt SQL Correctness
    strategy:
      matrix:
        dolt_fmt: [ "__DOLT__" ]
    steps:
      - uses: actions/checkout@v3
      - uses: azure/setup-kubectl@v3.0
        with:
          version: 'v1.23.6'
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v2.2.0
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-west-2
      - name: Install aws-iam-authenticator
        run: |
          curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.18.8/2020-09-18/bin/linux/amd64/aws-iam-authenticator && \
          chmod +x ./aws-iam-authenticator && \
          sudo cp ./aws-iam-authenticator /usr/local/bin/aws-iam-authenticator
          aws-iam-authenticator version
      - name: Create and Auth kubeconfig
        run: |
          echo "$CONFIG" > kubeconfig
          KUBECONFIG=kubeconfig kubectl config set-credentials github-actions-dolt --exec-api-version=client.authentication.k8s.io/v1alpha1 --exec-command=aws-iam-authenticator --exec-arg=token --exec-arg=-i --exec-arg=eks-cluster-1
          KUBECONFIG=kubeconfig kubectl config set-context github-actions-dolt-context --cluster=eks-cluster-1 --user=github-actions-dolt --namespace=performance-benchmarking
          KUBECONFIG=kubeconfig kubectl config use-context github-actions-dolt-context
        env:
          CONFIG: ${{ secrets.CORP_KUBECONFIG }}
      - name: Create SQL Correctness K8s Job
        run: ./.github/scripts/sql-correctness/run-correctness.sh
        env:
          PR_BRANCH_REF: ${{ github.event.client_payload.branch_ref }}
          REGRESS_COMP: ${{ github.event.client_payload.regress_comp }}
          PR_NUMBER: ${{ github.event.client_payload.issue_number }}
          VERSION: ${{ github.event.client_payload.version }}
          MODE: ${{ github.event.client_payload.mode }}
          ACTOR: ${{ github.event.client_payload.actor }}
          ACTOR_EMAIL: ${{ github.event.client_payload.actor_email }}
          REPO_ACCESS_TOKEN: ${{ secrets.REPO_ACCESS_TOKEN }}
          KUBECONFIG: "./kubeconfig"
          NOMS_BIN_FORMAT: ${{ matrix.dolt_fmt }}
          TEMPLATE_SCRIPT: ${{ github.event.client_payload.template_script }}
