refactor(client-cpp): TableModel ID->TAG, MEASUREMENT->FIELD #2443
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/*" | |
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 |