849 Commits
Author SHA1 Message Date
Alexei FedotovandClaude Opus 5.5 f26e51a98f darwin fast test: enable the job in the PR workflow again
Reverts https://github.com/ClickHouse/ClickHouse/pull/125587. The macOS fleet grew from 10 to 21 runners; 50 parallel copies started without waiting for a runner and left no orphaned processes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:54:39 +02:00
Vitaly Pryakhin 154dd211d4 New long perf tests for the nightly workflow 2026-10-23 11:00:54 +03:00
Alexey Milovidov 651e9b58bd Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	ci/jobs/scripts/workflow_hooks/filter_job.py
2026-10-20 13:23:44 +00:00
Groene AIandClaude Opus 5.5 1087a0740f Perf CI: name the PR comparison reference build *_release_performance_reference
Review on #124676: keep reusing the MasterCI build that compiles master with
the PR flags, but make it explicit that its binary is the performance
reference, and keep the cmake options that tell an official build from a PR
build in one place so the reference cannot drift from a PR build.

- Rename `Build (amd|arm_release_pr_cache_warmup)` to
  `Build (amd|arm_release_performance_reference)`, with the artifacts
  `CH_AMD|ARM_RELEASE_PERFORMANCE_REFERENCE`. The job still compiles every
  object with the shared sccache read-write, and the arm one still uploads
  the build profile baseline, now under the new check name.
- `flavor_cmake_options` in build_clickhouse.py is the only place that adds
  `-DCLICKHOUSE_OFFICIAL_BUILD=1` (official) or `-DDISABLE_ALL_DEBUG_SYMBOLS=1`
  (PR, public, ThinLTO). A reference build takes the PR options, the cmake
  line of its release build type and that build's PGO/BOLT decision.

Behavior is unchanged: for every build type, master/PR, public/private and
with/without PGO+BOLT profiles, main() produces the same cmake and build
commands as before the refactor (280 combinations), and the reference cmake
equals the PR release cmake for amd and arm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 12:47:24 +00:00
Groene AI d9d45867cd Merge remote-tracking branch 'origin/master' into groeneai/perf-reference-built-with-pr-flags
# Conflicts:
#	ci/defs/defs.py
2026-10-19 12:38:51 +00:00
Alexey Milovidov 1e99546210 Merge remote-tracking branch 'origin/master' into limited-clang-tidy-check-for-merge-queue 2026-10-18 06:02:26 +00:00
Alexey MilovidovandClaude Opus 5.5 0a3b4bd7c2 Rerun the tests master changed since the PR CI in the merge queue
The merge-queue flaky check reran only the PR's own new/changed tests. That
catches a `master` change breaking the PR's tests, but not the reverse: the PR
breaking a test that landed on `master` after the PR's last CI run. This is how
https://github.com/ClickHouse/ClickHouse/pull/124131 broke
`05339_string_filters_during_scan_parquet_short_dictionary_values` from
https://github.com/ClickHouse/ClickHouse/pull/124507 and was reverted by
https://github.com/ClickHouse/ClickHouse/pull/126396.

The `Config Workflow` job of the merge queue, which has the commit history, now
finds the tests changed on the first-parent history of the queue base after the
PR head commit time (or after the merge base, if the PR merged `master` since),
and stores them for the flaky check. When there are more than 30, the ones whose
names share more words with the names of the files changed by the PR come first.

For the merge-queue commit of #124131 (`d64fd503b42e`), the range has 819 tests,
and 05339 is selected second.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 04:33:37 +00:00
Vitaly Pryakhin e32fa75f4e Merge remote-tracking branch 'origin/master' into feature/issue76548/nightlyBenchmarkRunPR 2026-10-15 16:00:59 +03:00
Alexey Milovidov a8d9716901 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-15 12:03:46 +00:00
Alexey MilovidovandClaude Opus 5.5 c400d846c1 Merge remote-tracking branch 'origin/master' into continue-pr-124465-illumos-ci
Resolve conflicts in the generated `.github/workflows/master.yml` and
`.github/workflows/pull_request.yml` by regenerating them with
`python3 -m ci.praktika yaml`. `contrib/llvm-project` fast-forwards to the
PR's pointer, which already contains master's.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 18:06:52 +00:00
Vitaly PryakhinandClaude Opus 5.5 e1529ec95f Nightly perf: document slowest-queries SQL and access; filter nightly rows in double_check_perf.py
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 17:58:22 +03:00
Alexey Milovidov 33ec3fa085 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-14 14:54:40 +00:00
Vitaly PryakhinandClaude Sonnet 5.5 2250932306 Use arm-medium-storage runner
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 14:42:18 +03:00
Vitaly Pryakhin a43975aa29 Merge remote-tracking branch 'origin/master' into feature/issue76548/nightlyBenchmarkRunPR 2026-10-14 14:37:22 +03:00
Alexey Bakharew 62f2c9ecff Merge pull request #125647 from ClickHouse/abakharew/ci-llvm-coverage-label
Add the `ci-llvm-coverage` label: run the LLVM coverage jobs only
2026-10-14 10:20:54 +00:00
Alexey MilovidovandClaude Opus 5.5 10e80ff10a Address review: run the illumos build in BackportPR too
`ReleaseBranchCI` already runs `Build (amd_illumos)`, so backports should be
checked by the same job before they merge into a release branch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:06:26 +00:00
Alexey Milovidov 7531aab9c6 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.github/workflows/pull_request.yml
2026-10-14 01:05:53 +00:00
Vitaly PryakhinandClaude Opus 5.5 8194a70105 Perf: fail on any tested-side query error or timeout, in every mode
Reverts the `skipped` report of queries failing on every server and removes `double-timeout`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 22:44:20 +03:00
Vitaly PryakhinandClaude Opus 5.5 3664587ff3 Nightly perf: compare with the previous nightly's candidate only
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:44:37 +03:00
Vitaly PryakhinandClaude Opus 5.5 3f31123963 Remove ClickBench from NightlyExtendedPerformance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:37:40 +03:00
Maksim Andreev 46ec0d1707 Fix CreateReleaseBranch workflow engine selection
Set the workflow engine to GH_ACTIONS so Praktika reads the environment from the GitHub context.
2026-10-13 18:35:57 +02:00
Alexey BakharewandClaude Fable 5.1 68900f0337 Add the ci-llvm-coverage label: run the LLVM coverage jobs only
With the label a pull request runs the LLVM coverage family and nothing else:
`Build (llvm_coverage_build)`, the `amd_llvm_coverage` stateless, integration and
unit test shards, the `excluded_from_llvm` jobs with their `Build (amd_binary)`,
and the `LLVM Coverage` merge job. The flaky check of the changed tests runs on
the `amd_binary` build, because the coverage shards run without random settings
and never fail the pipeline. The style check stays. Every other job is skipped.

Made for pull requests that only add tests and need the coverage report, such as
the pull requests of the coverage agent. They use `ci-force-all` so far: about
4,400 machine minutes per push, against about 1,400 with this label.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-13 17:17:06 +02:00
Alexei Fedotov 04b1970c5c Merge remote-tracking branch 'upstream/master' into disable-darwin-fast-test
# Conflicts:
#	.github/workflows/pull_request.yml
2026-10-13 11:34:50 +02:00
Alexei FedotovandClaude Opus 5.5 152ccaa4f4 Disable the Darwin fast test in the PR workflow
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 11:31:38 +02:00
Vitaly Pryakhin 3f87bea612 Merge origin/master into feature/issue76548/nightlyBenchmarkRunPR 2026-10-12 22:53:06 +03:00
Alexey Milovidov 0c6b99a257 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-11 20:37:27 +00:00
Alexey Milovidov e65f10715d Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.github/workflows/pull_request.yml
2026-10-11 20:31:58 +00:00
Alexey MilovidovandClaude Opus 5.5 afa37068ff Merge remote-tracking branch 'origin/master' into groeneai/perf-reference-built-with-pr-flags
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 18:20:51 +00:00
Nikita Fomichev d397e5c521 CI: run full amd_tsan integration shards in PRs that change a submodule
Targeted integration jobs select tests by the coverage of the changed lines, and third-party code is built without coverage, so a submodule bump selects no test while a data race in the bumped library is visible only under TSan.

Related: https://github.com/ClickHouse/ClickHouse/pull/125030
Related: https://github.com/ClickHouse/ClickHouse/pull/124678
2026-10-10 19:25:31 +02:00
Alexey Milovidov 7281fcc0c9 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.github/workflows/master.yml
2026-10-10 12:07:06 +00:00
Alexey Milovidov 98fbdb9cc8 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-10 05:14:58 +00:00
Nikita Fomichev c378fabe6f Merge pull request #124764 from ClickHouse/ci-master-match-pr-workflow
CI: run the PR test configurations on master instead of the LLVM coverage build
2026-10-09 22:58:49 +00:00
Josh Carp 22d859798a Cross-compile for illumos.
Add toolchain and ci job to build for illumos, modeled after freebsd
cross-compilation.

Note: we disable a number of features that don't currently build on
illumos. These can be reenabled in the future if desired.

Resolves #23777.
2026-10-09 21:22:19 +00:00
Nikita Fomichev 25563b06f6 Revert "Do not run the arm_binary integration lane on master"
This reverts commit da994b8b39.
2026-10-09 17:49:25 +02:00
Nikita Fomichev b2bea5ce1f Merge pull request #124765 from ClickHouse/nik/coverage-report-workflow
Add scheduled CoverageReport workflow publishing the master LLVM coverage report
2026-10-09 15:26:46 +00:00
Nikita Fomichev da994b8b39 Do not run the arm_binary integration lane on master
Master already runs the full integration suite through integration_test_jobs_required and integration_test_jobs_non_required.
2026-10-09 17:18:29 +02:00
Alexey Milovidov ad683e8dc0 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-09 11:42:35 +00:00
Alexei Fedotov 58c10d49d2 Merge pull request #124191 from leshikus/create-release-upload-logs
CreateRelease: upload the reprepro, createrepo_c and geesefs logs to S3
2026-10-08 23:01:07 +00:00
Nikita Fomichev 0d1a5023a2 Add scheduled CoverageReport workflow publishing the master LLVM coverage report
Runs the LLVM coverage build, the unit, stateless and integration coverage shards and the LLVM Coverage report job every 3 hours (and on dispatch), reusing the shared job configs. Rows in `coverage_ci.coverage_data` keep `branch = 'master'` and `pull_request_number = 0`.
2026-10-09 00:54:02 +02:00
Nikita Fomichev 7e893e239f Run the PR test configurations on master instead of the LLVM coverage build
Master no longer builds `amd_llvm_coverage` or runs the LLVM coverage functional, integration and unit test jobs, the `excluded_from_llvm` integration job and the `LLVM Coverage` report job. The `DBReplicated`, `ParallelReplicas` and `AsyncInsert` stateless configurations and the full integration run now use the `arm_binary` jobs defined by https://github.com/ClickHouse/ClickHouse/pull/123790, so master runs the same configurations as pull requests.

Related: https://github.com/ClickHouse/ClickHouse/issues/124015
2026-10-09 00:53:34 +02:00
Vitaly PryakhinandClaude Sonnet 5.5 9e081974a6 Merge origin/master into feature/issue76548/nightlyBenchmarkRunPR
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 01:08:38 +03:00
Groene AIandClaude Opus 5.5 dc34890638 Compare PR perf candidates with a master build made with the PR flags
In `master_head` mode the PR performance comparison used master's official
release build as the reference. That build keeps debug info and sets
`-DCLICKHOUSE_OFFICIAL_BUILD=1`, while a PR release build has
`-DDISABLE_ALL_DEBUG_SYMBOLS=1` and no official flag. Both change the
generated code (XRay instruments ~11k more functions when debug info is
present, and the official flag adds code), so the same sources give two
binaries with different code layout. The CI-only #123849 has 0x65500 bytes
less code than the official build of its own base e95690ab45 and was
21.6% slower on `window_functions_distinct #2`. On some master bases a hot
loop lands on a slow placement only in the PR flavour, and every PR on that
base then reds (seen on #100391).

MasterCI's `Build (amd|arm_release_pr_cache_warmup)` jobs already compile
master with exactly the PR cmake flags. They now also link
`clickhouse-self-extracting` and upload it, and take the PGO/BOLT decision
of the release build they mirror, as a PR build does.

For PR runs of the public repository, `find_prev_build` prefers that binary.
When the base has none it walks back only over commits where MasterCI
skipped the warmup job (a skipped job means its inputs did not change, so
the older build has the same sources); anything else falls back to the
official build. Replayed over 14 days of PR references, 332 of 356 get a
build with identical compiled sources and none gets different sources.
Master runs (official vs official) and local runs are unchanged. The report
parsing of `classify_missing_prev_master_run` moves into
`master_job_status`, shared by both walks.

The arm warmup's build-profile upload stays what it was (compiled objects):
the server link trace is deleted before extraction and the symbol table of
the linked binary is not uploaded, so the shared build-profile cluster gets
no new load.

Cost: ~24 min (amd) and ~39 min (arm) of ThinLTO link per warmup run and
~540 MB of S3 per run with default retention. MasterCI wall clock is
unchanged and no PR job is added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 13:56:50 +00:00
Alexey Milovidov cb1f4c2071 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	ci/defs/job_configs.py
2026-10-07 15:33:46 +00:00
Alexey Milovidov d23fa8af52 Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.github/workflows/pull_request.yml
2026-10-07 09:14:27 +00:00
Alexey Milovidov a6e2088f68 Merge remote-tracking branch 'origin/master' into HEAD 2026-10-06 15:20:04 +00:00
Alexei FedotovandClaude Opus 5.5 bd9eddcfc4 CreateRelease: name the job differently from the workflow
With the report enabled, praktika stores the workflow result and the job
result on S3 under `result_<normalized name>.json`. The workflow and its only
job were both named `CreateRelease`, so the job's gzipped result overwrote the
workflow result, and the HTML hook failed to read it back with
`UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b`. The job uploaded
its log files before that failure.

Dry run: https://github.com/ClickHouse/ClickHouse/actions/runs/37448847921

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 12:23:54 +02:00
Alexei FedotovandClaude Opus 5.5 c0978f982f CreateRelease: upload the reprepro, createrepo_c and geesefs logs to S3
`release_job.py` attached `/tmp/reprepro.log`, `/tmp/createrepo_c.log` and
`~/fuse_mount.log` (the geesefs log) to its `Result.files`, but two gaps kept
them off S3:

- `CreateRelease` had no `enable_report`, so praktika never ran the HTML hook
  that uploads `Result.files` and links them to the result.
- A run killed by the 7200 s timeout never reached `complete_job`, so its
  result carried no files at all.

Enable the report, and checkpoint a `RUNNING` result with the log files
before each step. On a timeout the runner marks that result `ERROR` and
uploads its files. The logs are created up front, so a run killed inside the
export step still names them.

Run 36585485987 timed out with no log uploaded:
https://github.com/ClickHouse/ClickHouse/actions/runs/36585485987

Related: https://github.com/ClickHouse/clickhouse-private/issues/78182

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 12:10:59 +02:00
Nikita Taranov 2bdd4efe43 Merge remote-tracking branch 'origin/master' into tidy-shards
# Conflicts:
#	.github/workflows/master.yml
#	.github/workflows/pull_request.yml
2026-10-06 08:39:34 +00:00
Alexey Milovidov 995d0b0508 Merge remote-tracking branch 'origin/master' into pr-123790
Resolve the conflict in the generated `.github/workflows/pull_request.yml` by regenerating it with `python3 -m ci.praktika yaml`.
2026-10-06 05:19:28 +00:00
Vitaly Pryakhin 4304b6fdc4 Merge remote-tracking branch 'origin/master' into feature/issue76548/nightlyBenchmarkRunPR 2026-10-05 22:13:45 +03:00