| name | clickhouse-ci-integration |
| description | Run ClickHouse integration tests in CI with GitHub Actions and Docker
containers. Use when setting up automated testing against a real ClickHouse
instance, configuring CI pipelines, or implementing schema validation in CI.
Trigger with "clickhouse CI", "clickhouse GitHub Actions", "clickhouse
integration tests", "test clickhouse in CI", "clickhouse automated testing".
|
| allowed-tools | Read, Write, Edit, Bash(gh:*) |
| version | 1.7.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","database","analytics","clickhouse","olap"] |
| compatibility | Designed for Claude Code |
ClickHouse CI Integration
Overview
Run integration tests against a real ClickHouse server in GitHub Actions using
Docker service containers. No mocks needed for schema and query validation —
the workflow spins up clickhouse/clickhouse-server, applies your schema, and
runs unit + integration tests against the live instance.
This skill produces four artifacts: a GitHub Actions workflow, a shared test
setup, integration/schema test files, and the package.json scripts that tie
them together. SKILL.md gives you the workflow skeleton and the moving parts;
the full copy-paste-ready test harness lives in
references/implementation.md and
references/examples.md.
Prerequisites
- GitHub repository with Actions enabled
@clickhouse/client in project dependencies
- Test suite (vitest or jest)
Instructions
Read any existing .github/workflows/ and package.json first, then create or
edit the four artifacts below.
Step 1: Add the workflow with a ClickHouse service container
Create .github/workflows/clickhouse-tests.yml. The core is a services.clickhouse
block with a health check plus a schema-apply step before tests run:
services:
clickhouse:
image: clickhouse/clickhouse-server:latest
ports: ["8123:8123", "9000:9000"]
options: >-
--health-cmd "wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1"
--health-interval 10s --health-timeout 5s --health-retries 5
Full workflow (checkout, Node setup, npm ci, schema-apply loop, unit +
integration steps, and credential handling): references/implementation.md Step 1.
Step 2: Wire the shared test setup
Add tests/setup-integration.ts — it creates a @clickhouse/client, pings on
beforeAll to fail fast if the service is unreachable, TRUNCATEs between
tests, and closes on afterAll. See
references/implementation.md Step 2 for the file.