name: Check

on:
  pull_request:
    branches: [ 'master', 'release/v*' ]
  push:
    branches: [ 'master', 'release/v*' ]

jobs:
  test:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        python: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
        java: ['8', '11', '17', '21', '23']
    steps:
      - uses: actions/checkout@v5

      - uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}

      - uses: actions/setup-java@v5
        with:
          distribution: 'temurin'
          java-version: ${{ matrix.java }}

      - run: pip install "setuptools < 72" numpy

      - name: Run Test
        run: python setup.py test

      - name: Upload JVM Error Logs
        uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: check-ci-jvm-err
          path: |
            **/*_pid*.log
            **/core.*
          if-no-files-found: ignore

  test-free-threaded:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        python: ['3.13t', '3.14t']
        java: ['8', '11', '17', '21', '23']
    steps:
        - uses: actions/checkout@v5

        - uses: actions/setup-java@v5
          with:
            distribution: 'temurin'
            java-version: ${{ matrix.java }}

        - uses: astral-sh/setup-uv@v7
        - run: |
            uv python install ${{ matrix.python }}
            uv venv --python ${{ matrix.python }}
            source .venv/bin/activate
            uv pip install pip
            echo $JAVA_HOME
            echo PATH=$PATH >> $GITHUB_PATH

        - run: pip install "setuptools < 72" numpy

        - name: Run Free-threaded Test
          run: python setup.py test

        - name: Upload JVM Error Logs
          uses: actions/upload-artifact@v4
          if: failure()
          with:
            name: check-ci-jvm-err
            path: |
              **/*_pid*.log
              **/core.*
            if-no-files-found: ignore
