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-20.04, ubuntu-22.04, ubuntu-24.04, windows-2019, 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
          if ("${{ matrix.os }}" -eq "windows-2019") {
            choco install boost-msvc-14.2
          } else {
            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
          elif [[ "${{ matrix.os }}" == "windows-2019" ]]; 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-msvc142-SNAPSHOT -Dcmake.generator="Visual Studio 16 2019"
          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.6', '3.x' ]
    runs-on: ${{ (matrix.python == '3.6' && 'ubuntu-20.04') || '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
