Skip to content

ci(linux): test against the supported ClickHouse server versions - #550

Merged
slabko merged 1 commit into
masterfrom
polyglot/ci-server-version-matrix
Aug 24, 2026
Merged

ci(linux): test against the supported ClickHouse server versions#550
slabko merged 1 commit into
masterfrom
polyglot/ci-server-version-matrix

Conversation

@polyglotAI-bot

Copy link
Copy Markdown
Collaborator

Description

The Linux workflow starts ClickHouse from ci/docker-compose.yml, which pins a single
image (clickhouse/clickhouse-server:25.12-alpine). The test suite therefore ran against
one server version only, so a regression against an older LTS or a newer stable release
would not be caught.

This adds server-version coverage to CI: the 3 latest stable series, the 2 latest LTS
series, and head.

Changes

.github/workflows/linux.yml — new server-versions job that runs the same unit-test
suite (clickhouse-cpp-ut) against:

  • 25.8 (LTS)
  • 26.3 (LTS)
  • 26.5, 26.6, 26.7 (stable)
  • head (nightly build of ClickHouse master)

The job sets CLICKHOUSE_VERSION, which ci/docker-compose.yml already honours
(${CLICKHOUSE_VERSION-25.12-alpine}). No change to the compose file: its default stays
the fallback for local runs.

Design notes

  • The compiler axis is pinned to one canonical configuration in the new job — clang-18,
    WITH_OPENSSL=ON, ubuntu-24.04 — so the server-version axis does not multiply the
    existing build matrix (24 jobs) into 144. This is the shape used by the other ClickHouse
    client repositories.
  • fail-fast: false, so one failing server version does not hide the others.
  • The -alpine suffix is kept, matching the image the workflow used before.

Test

  • YAML parses; the new job is present with the expected matrix values.
  • CLICKHOUSE_VERSION=26.7-alpine docker compose -f ci/docker-compose.yml config resolves
    to clickhouse/clickhouse-server:26.7-alpine; with no override it resolves to the
    unchanged 25.12-alpine default.
  • Every image tag verified to exist: docker manifest inspect clickhouse/clickhouse-server:{25.8,26.3,26.5,26.6,26.7,head}-alpine.
  • Full validation runs on this PR's own CI.

CI/maintenance change only — no client behaviour changes, so no CHANGELOG entry or
version bump.

The Linux workflow started ClickHouse from ci/docker-compose.yml with a
single pinned image (25.12-alpine), so the client was tested against one
server version only.

Add a `server-versions` job that runs the same unit-test suite against
25.8 and 26.3 (LTS), 26.5, 26.6 and 26.7 (stable), and `head` (nightly
build of ClickHouse master). The job sets CLICKHOUSE_VERSION, which the
compose file already honours; the compose default is unchanged and stays
the fallback for local runs.

The compiler axis is pinned to one canonical configuration (clang-18,
OpenSSL on, ubuntu-24.04) in the new job, so the server-version axis does
not multiply the existing build matrix.
@slabko
slabko merged commit ea9ec79 into master Aug 24, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants