name: CI
on:
  pull_request:
    branches:
      - main
      - next

jobs:
  detect_breaking_changes:
    runs-on: 'ubuntu-latest'
    name: detect-breaking-changes
    if: github.repository == 'openai/openai-java'
    steps:
      - name: Calculate fetch-depth
        run: |
          echo "FETCH_DEPTH=$(expr ${{ github.event.pull_request.commits }} + 1)" >> $GITHUB_ENV

      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
        with:
          # Ensure we can check out the pull request base in the script below.
          fetch-depth: ${{ env.FETCH_DEPTH }}

      - name: Set up Java
        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
        with:
          distribution: temurin
          java-version: |
            8
            21
          cache: gradle
      - name: Set up Gradle
        uses: gradle/gradle-build-action@fe583dc97e032f41ccc310ea5176f2d7306abbc4 # v2

      - name: Detect breaking changes
        run: |
          # Try to check out previous versions of the breaking change detection script. This ensures that
          # we still detect breaking changes when entire files and their tests are removed.
          git checkout "${{ github.event.pull_request.base.sha }}" -- ./scripts/detect-breaking-changes 2>/dev/null || true
          ./scripts/detect-breaking-changes ${{ github.event.pull_request.base.sha }}