name: Multi-Language Client
on:
  push:
    branches:
      - master
      - "rc/*"
    paths:
      - 'pom.xml'
      - 'iotdb-client/pom.xml'
      - 'iotdb-client/client-py/**'
      - 'iotdb-client/client-cpp/**'
      - 'example/client-cpp-example/**'
      - 'iotdb-protocol/thrift-datanode/src/main/thrift/client.thrift'
      - 'iotdb-protocol/thrift-commons/src/main/thrift/common.thrift'
      - '.github/workflows/multi-language-client.yml'
  pull_request:
    branches:
      - master
      - "rc/*"
      - 'force_ci/**'
    paths:
      - 'pom.xml'
      - 'iotdb-client/pom.xml'
      - 'iotdb-client/client-py/**'
      - 'iotdb-client/client-cpp/**'
      - 'example/client-cpp-example/**'
      - 'iotdb-protocol/thrift-datanode/src/main/thrift/client.thrift'
      - 'iotdb-protocol/thrift-commons/src/main/thrift/common.thrift'
      - '.github/workflows/multi-language-client.yml'
  # 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

jobs:
  cpp:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        os: [ubuntu-22.04, ubuntu-24.04, windows-2022, macos-latest]
    runs-on: ${{ matrix.os}}

    steps:
      - uses: actions/checkout@v4
      - name: Install CPP Dependencies (Ubuntu)
        if: runner.os == 'Linux'
        shell: bash
        run: |
          sudo apt-get update
          sudo apt-get install libboost-all-dev
      - name: Install CPP Dependencies (Mac)
        # remove some xcode to release disk space
        if: runner.os == 'macOS'
        shell: bash
        run: |
          brew install boost
          sudo rm -rf /Applications/Xcode_14.3.1.app
          sudo rm -rf /Applications/Xcode_15.0.1.app
          sudo rm -rf /Applications/Xcode_15.1.app
          sudo rm -rf /Applications/Xcode_15.2.app
          sudo rm -rf /Applications/Xcode_15.3.app
      - name: Install CPP Dependencies (Windows)
        if: runner.os == 'Windows'
        run: |
          choco install winflexbison3
          choco install boost-msvc-14.3
          $boost_path = (Get-ChildItem -Path 'C:\local\' -Filter 'boost_*').FullName
          echo $boost_path >> $env:GITHUB_PATH
      - name: Cache Maven packages
        uses: actions/cache@v4
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Build IoTDB server
        shell: bash
        run: ./mvnw clean install -pl distribution -am -DskipTests
      - name: Test with Maven
        shell: bash
        # Explicitly using mvnw here as the build requires maven 3.9 and the default installation is older
        # Explicitly using "install" instead of package in order to be sure we're using libs built on this machine
        # (was causing problems on windows, but could cause problem on linux, when updating the thrift module)
        run: |
          if [[ "$RUNNER_OS" == "Linux" ]]; then
            ./mvnw clean verify -P with-cpp -pl iotdb-client/client-cpp,example/client-cpp-example -am -Diotdb-tools-thrift.version=0.14.1.1-glibc223-SNAPSHOT
          else
            ./mvnw clean verify -P with-cpp -pl iotdb-client/client-cpp,example/client-cpp-example -am
          fi
      - name: Upload Artifact
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: cpp-IT-${{ runner.os }}
          path: distribution/target/apache-iotdb-*-all-bin/apache-iotdb-*-all-bin/logs
          retention-days: 1

  go:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          token: ${{secrets.GITHUB_TOKEN}}
          submodules: recursive
      - name: Cache Maven packages
        uses: actions/cache@v4
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Compile IoTDB Server
        run: mvn clean package -pl distribution -am -DskipTests
      - name: Integration test
        shell: bash
        run: |
          cd iotdb-client
          git clone https://github.com/apache/iotdb-client-go.git
          cd iotdb-client-go
          make e2e_test_for_parent_git_repo e2e_test_clean_for_parent_git_repo

  python:
    strategy:
      fail-fast: false
      max-parallel: 15
      matrix:
        python: ['3.x']
    runs-on: ${{ 'ubuntu-latest' }}

    steps:
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python }}
      - uses: actions/checkout@v4
      - name: Cache Maven packages
        uses: actions/cache@v4
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Cache pip packages
        uses: actions/cache@v4
        with:
          path: ~/.cache/pip
          key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
          restore-keys: ${{ runner.os }}-pip-
      - name: Build IoTDB server distribution zip and python client
        run: mvn -B clean install -pl distribution,iotdb-client/client-py -am -DskipTests
      - name: Build IoTDB server docker image
        run: |
          docker build . -f docker/src/main/Dockerfile-1c1d -t "iotdb:dev"
          docker images
      - name: Install IoTDB python client requirements
        run: pip3 install -r iotdb-client/client-py/requirements_dev.txt
      - name: Check code style
        if: ${{ matrix.python == '3.x'}}
        shell: bash
        run: black iotdb-client/client-py/ --check --diff
      - name: Integration test and test make package
        shell: bash
        run: |
          cd iotdb-client/client-py/ && pytest .
          ./release.sh
