Add port verification and remove error masking from E2E workflows - Remove || true from test commands to properly report test failures - Add port verification step using ss command before running tests - 1C1D: Verify port 6667 is listening - 3C3D: Verify ports 6667, 6668, 6669 are all listening - Add Docker container status and log output for debugging - Use continue-on-error: true for debug log commands instead of || true - Workflow now fails fast if required ports are not open - Ensures tests connect to correct IoTDB configuration (1C1D vs 3C3D) - Addresses feedback: proper error reporting and port validation
diff --git a/.github/workflows/e2e-1c1d.yml b/.github/workflows/e2e-1c1d.yml index 750ae8f..c48f1da 100644 --- a/.github/workflows/e2e-1c1d.yml +++ b/.github/workflows/e2e-1c1d.yml
@@ -35,6 +35,21 @@ docker compose -f docker-compose-1c1d.yml up -d echo "Waiting for IoTDB to be ready..." sleep 45 + + - name: Verify IoTDB ports are listening + run: | + echo "Checking IoTDB port 6667..." + ss -tuln | grep 6667 || (echo "ERROR: Port 6667 is not listening!" && exit 1) + echo "Port 6667 is listening ✓" + + - name: Show Docker container status + continue-on-error: true + run: | + echo "=== Docker containers status ===" + docker compose -f docker-compose-1c1d.yml ps + echo "" + echo "=== Recent logs from iotdb-datanode ===" + docker compose -f docker-compose-1c1d.yml logs --tail=50 iotdb-datanode - name: Run E2E Tests env: @@ -43,7 +58,7 @@ IOTDB_USER: root IOTDB_PASSWORD: root run: | - npm run test:e2e 2>&1 | tee test-results/test-output.log || true + npm run test:e2e 2>&1 | tee test-results/test-output.log - name: Stop and clean up Docker Compose if: always()
diff --git a/.github/workflows/e2e-3c3d.yml b/.github/workflows/e2e-3c3d.yml index f5f35b7..da4b0d8 100644 --- a/.github/workflows/e2e-3c3d.yml +++ b/.github/workflows/e2e-3c3d.yml
@@ -35,6 +35,29 @@ docker compose -f docker-compose-3c3d.yml up -d echo "Waiting for IoTDB cluster to be ready..." sleep 75 + + - name: Verify IoTDB ports are listening + run: | + echo "Checking IoTDB DataNode ports 6667, 6668, 6669..." + ss -tuln | grep 6667 || (echo "ERROR: Port 6667 is not listening!" && exit 1) + ss -tuln | grep 6668 || (echo "ERROR: Port 6668 is not listening!" && exit 1) + ss -tuln | grep 6669 || (echo "ERROR: Port 6669 is not listening!" && exit 1) + echo "All three DataNode ports (6667, 6668, 6669) are listening ✓" + + - name: Show Docker container status + continue-on-error: true + run: | + echo "=== Docker containers status ===" + docker compose -f docker-compose-3c3d.yml ps + echo "" + echo "=== Recent logs from iotdb-datanode1 ===" + docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode1 + echo "" + echo "=== Recent logs from iotdb-datanode2 ===" + docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode2 + echo "" + echo "=== Recent logs from iotdb-datanode3 ===" + docker compose -f docker-compose-3c3d.yml logs --tail=30 iotdb-datanode3 - name: Run E2E Tests env: @@ -43,7 +66,7 @@ IOTDB_USER: root IOTDB_PASSWORD: root run: | - npm run test:e2e 2>&1 | tee test-results/test-output.log || true + npm run test:e2e 2>&1 | tee test-results/test-output.log - name: Stop and clean up Docker Compose if: always()