# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Unit-Test

on:
  push:
    branches:
      - master
      - "rel/*"
      - "rc/*"
    paths-ignore:
      - "docs/**"
      - "site/**"
  pull_request:
    branches:
      - master
      - "rel/*"
      - "rc/*"
      - "force_ci/**"
    paths-ignore:
      - "docs/**"
      - "site/**"
  # allow manually run the action:
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Xms2g -Xmx4g -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3
  MAVEN_ARGS: --batch-mode --no-transfer-progress
  DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}

jobs:
  unit-test:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        java: [17]
        os: [ubuntu-latest, windows-latest]
        it_task: ["others", "datanode"]
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v5
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v5
        with:
          distribution: corretto
          java-version: ${{ matrix.java }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      - name: Cache Maven packages
        uses: actions/cache@v5
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Test Datanode Module with Maven
        shell: bash
        if: ${{ matrix.it_task == 'datanode'}}
        # forkCount=4 runs up to 4 surefire JVMs in parallel. reuseForks=false
        # is left on (set in iotdb-core/datanode/pom.xml) so each test class
        # still gets a fresh JVM — only cross-fork parallelism changes.
        # The pom already wires <workingDirectory>...fork_${surefire.forkNumber}
        # for filesystem isolation; datanode UTs do no socket binding (grep'd:
        # zero ServerSocket / bind() / TServer.serve() calls in tests), so
        # cross-fork resource conflicts are not a concern.
        run: mvn clean integration-test -Dtest.port.closed=true -pl iotdb-core/datanode -am -DskipTests -Diotdb.test.only=true -DforkCount=4
      - name: Test Other Modules with Maven
        shell: bash
        if: ${{ matrix.it_task == 'others'}}
        run: |
          mvn clean install -DskipTests
          mvn -P get-jar-with-dependencies,with-integration-tests clean test -Dtest.port.closed=true -Diotdb.test.skip=true
