This directory contains GitHub Actions workflows for continuous integration and automated maintenance.
e2e-1c1d.ymlRuns end-to-end tests with a single ConfigNode and single DataNode setup.
Trigger:
main or dev/* branchesmainWhat it does:
e2e-3c3d.ymlRuns end-to-end tests with 3 ConfigNodes and 3 DataNodes setup for high availability testing.
Trigger:
main or dev/* branchesmainWhat it does:
check-thrift.ymlAutomatically checks for updates to Thrift definitions in Apache IoTDB master branch.
Trigger:
What it does:
You can run the same E2E tests locally using Docker Compose:
# Single node (1C1D) docker compose -f docker-compose-1c1d.yml up --build --abort-on-container-exit # Multi-node cluster (3C3D) docker compose -f docker-compose-3c3d.yml up --build --abort-on-container-exit
Clean up after tests:
docker compose -f docker-compose-1c1d.yml down -v docker compose -f docker-compose-3c3d.yml down -v
To manually check and update Thrift definitions:
# Clone IoTDB git clone --depth 1 https://github.com/apache/iotdb.git /tmp/iotdb # Copy Thrift files cp /tmp/iotdb/iotdb-protocol/thrift-datanode/src/main/thrift/client.thrift thrift/ cp /tmp/iotdb/iotdb-protocol/thrift-commons/src/main/thrift/common.thrift thrift/ # Regenerate client thrift --gen js:node -out src/thrift/generated thrift/client.thrift # Build and test npm run build npm test
The E2E tests include:
The large query tests specifically cover:
These tests ensure the client correctly handles pagination and multiple result fetches.
For E2E tests, you can configure:
IOTDB_HOST - IoTDB host (default: localhost)IOTDB_PORT - IoTDB port (default: 6667)IOTDB_USER - Username (default: root)IOTDB_PASSWORD - Password (default: root)IOTDB_HOSTS - Comma-separated list of hosts for multi-node testsThe workflows use standard GITHUB_TOKEN for authentication. No additional secrets are required.
For the Thrift update workflow to create pull requests, ensure the repository has:
docker compose logs