name: Regression Test

on:
  pull_request:
    branches: [develop]
  workflow_dispatch:

jobs:
  regression:
    name: Regression Test
    runs-on: ubuntu-latest
    permissions:
      contents: read
      checks: write

    steps:
      - name: Checkout code
        uses: actions/checkout@v6

      - name: Set up Java
        uses: actions/setup-java@v5
        with:
          java-version: 21
          distribution: 'temurin'

      - name: Run regression test
        id: regression
        continue-on-error: true
        run: |
          chmod +x scripts/regression-test.sh
          ./scripts/regression-test.sh
        env:
          GH_TOKEN: ${{ github.token }}

      - name: Publish test report
        uses: dorny/test-reporter@v3
        if: always()
        with:
          name: Regression Results
          path: regression-report/regression-results.xml
          reporter: java-junit
          fail-on-error: false

      - name: Upload report artifact
        uses: actions/upload-artifact@v7
        if: always()
        with:
          name: regression-report
          path: regression-report/
          retention-days: 30

      - name: Summary
        if: always()
        run: |
          if [ "${{ steps.regression.outcome }}" = "failure" ]; then
            echo "::warning::Regression test detected differences — check the Regression Results report for details"
          fi
