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@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@v5
        with:
          distribution: temurin
          java-version: |
            8
            21
          cache: gradle
      - name: Set up Gradle
        uses: gradle/gradle-build-action@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 }}