# 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/*"
    paths-ignore:
      - 'docs/**'
      - 'site/**'
  # allow manually run the action:
  workflow_dispatch:

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

env:
  MAVEN_OPTS: -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.GE_ACCESS_TOKEN }}

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@v4
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v4
        with:
          distribution: corretto
          java-version: ${{ matrix.java }}
      - name: Cache Maven packages
        uses: actions/cache@v4
        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'}}
        run: mvn clean integration-test -Dtest.port.closed=true -pl iotdb-core/datanode -am -DskipTests -Diotdb.test.only=true
      - 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
