ci(linux): test against the supported ClickHouse server versions - #550
Merged
Conversation
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
approved these changes
Aug 24, 2026
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The Linux workflow starts ClickHouse from
ci/docker-compose.yml, which pins a singleimage (
clickhouse/clickhouse-server:25.12-alpine). The test suite therefore ran againstone 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— newserver-versionsjob that runs the same unit-testsuite (
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, whichci/docker-compose.ymlalready honours(
${CLICKHOUSE_VERSION-25.12-alpine}). No change to the compose file: its default staysthe fallback for local runs.
Design notes
WITH_OPENSSL=ON, ubuntu-24.04 — so the server-version axis does not multiply theexisting 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.-alpinesuffix is kept, matching the image the workflow used before.Test
CLICKHOUSE_VERSION=26.7-alpine docker compose -f ci/docker-compose.yml configresolvesto
clickhouse/clickhouse-server:26.7-alpine; with no override it resolves to theunchanged
25.12-alpinedefault.docker manifest inspect clickhouse/clickhouse-server:{25.8,26.3,26.5,26.6,26.7,head}-alpine.CI/maintenance change only — no client behaviour changes, so no CHANGELOG entry or
version bump.