2021-11-12 11:12:42 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
2023-04-12 19:07:12 +00:00
|
|
|
from dataclasses import dataclass
|
|
|
|
from typing import Callable, Dict, TypeVar
|
2022-01-12 12:14:31 +00:00
|
|
|
|
|
|
|
ConfValue = TypeVar("ConfValue", str, bool)
|
|
|
|
BuildConfig = Dict[str, ConfValue]
|
|
|
|
|
2021-11-12 11:12:42 +00:00
|
|
|
CI_CONFIG = {
|
2021-11-26 10:57:36 +00:00
|
|
|
"build_config": {
|
|
|
|
"package_release": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2022-06-15 11:18:26 +00:00
|
|
|
"static_binary_name": "amd64",
|
2022-03-14 21:06:53 +00:00
|
|
|
"additional_pkgs": True,
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-03-14 13:51:50 +00:00
|
|
|
"coverity": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2022-03-14 13:51:50 +00:00
|
|
|
"sanitizer": "",
|
|
|
|
"package_type": "coverity",
|
|
|
|
"tidy": "disable",
|
|
|
|
"with_coverage": False,
|
2022-05-13 17:22:23 +00:00
|
|
|
"official": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "A special build for coverity",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-12-08 21:52:00 +00:00
|
|
|
"package_aarch64": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-aarch64",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-12-08 21:52:00 +00:00
|
|
|
"sanitizer": "",
|
|
|
|
"package_type": "deb",
|
2022-06-15 11:18:26 +00:00
|
|
|
"static_binary_name": "aarch64",
|
2022-03-14 21:06:53 +00:00
|
|
|
"additional_pkgs": True,
|
2021-12-08 21:52:00 +00:00
|
|
|
"tidy": "disable",
|
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-12-08 21:52:00 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"package_asan": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "address",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"package_ubsan": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "undefined",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"package_tsan": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "thread",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"package_msan": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "memory",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"package_debug": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "deb",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "Note: sparse checkout was used",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_release": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-26 10:57:36 +00:00
|
|
|
},
|
2021-11-30 12:45:18 +00:00
|
|
|
"binary_tidy": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-30 12:45:18 +00:00
|
|
|
"package_type": "binary",
|
2022-01-13 12:55:51 +00:00
|
|
|
"static_binary_name": "debug-amd64",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "enable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "clang-tidy is used for static analysis",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_darwin": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-darwin",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2022-01-13 12:55:51 +00:00
|
|
|
"static_binary_name": "macos",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_aarch64": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-aarch64",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-09-21 13:09:24 +00:00
|
|
|
"binary_aarch64_v80compat": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-aarch64-v80compat",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2022-09-21 13:09:24 +00:00
|
|
|
"sanitizer": "",
|
|
|
|
"package_type": "binary",
|
2022-09-26 11:40:09 +00:00
|
|
|
"static_binary_name": "aarch64v80compat",
|
2022-09-21 13:09:24 +00:00
|
|
|
"tidy": "disable",
|
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "For ARMv8.1 and older",
|
2022-09-21 13:09:24 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_freebsd": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-freebsd",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2022-01-13 12:55:51 +00:00
|
|
|
"static_binary_name": "freebsd",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_darwin_aarch64": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-darwin-aarch64",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2022-01-13 12:55:51 +00:00
|
|
|
"static_binary_name": "macos-aarch64",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
"binary_ppc64le": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-ppc64le",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2021-11-12 11:12:42 +00:00
|
|
|
"sanitizer": "",
|
2021-11-12 12:13:13 +00:00
|
|
|
"package_type": "binary",
|
2022-05-11 01:02:01 +00:00
|
|
|
"static_binary_name": "powerpc64le",
|
2021-11-12 11:12:42 +00:00
|
|
|
"tidy": "disable",
|
2021-12-14 17:47:45 +00:00
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "",
|
2021-12-14 17:47:45 +00:00
|
|
|
},
|
2022-12-19 19:00:21 +00:00
|
|
|
"binary_amd64_compat": {
|
2023-03-18 22:45:57 +00:00
|
|
|
"compiler": "clang-16-amd64-compat",
|
2023-07-04 11:07:10 +00:00
|
|
|
"build_type": "",
|
2022-09-05 12:04:10 +00:00
|
|
|
"sanitizer": "",
|
|
|
|
"package_type": "binary",
|
2022-12-19 19:00:21 +00:00
|
|
|
"static_binary_name": "amd64compat",
|
2022-09-05 12:04:10 +00:00
|
|
|
"tidy": "disable",
|
|
|
|
"with_coverage": False,
|
2023-05-24 20:29:36 +00:00
|
|
|
"comment": "SSE2-only build",
|
2022-09-05 12:04:10 +00:00
|
|
|
},
|
2021-11-26 10:57:36 +00:00
|
|
|
},
|
2021-11-30 15:33:29 +00:00
|
|
|
"builds_report_config": {
|
2022-07-21 10:27:45 +00:00
|
|
|
"ClickHouse build check": [
|
2021-11-30 15:33:29 +00:00
|
|
|
"package_release",
|
2022-03-14 13:51:50 +00:00
|
|
|
"coverity",
|
2021-12-08 21:52:00 +00:00
|
|
|
"package_aarch64",
|
2021-11-30 15:33:29 +00:00
|
|
|
"package_asan",
|
|
|
|
"package_ubsan",
|
|
|
|
"package_tsan",
|
|
|
|
"package_msan",
|
|
|
|
"package_debug",
|
2021-12-14 17:47:45 +00:00
|
|
|
"binary_release",
|
2021-11-30 15:33:29 +00:00
|
|
|
],
|
2022-07-21 10:27:45 +00:00
|
|
|
"ClickHouse special build check": [
|
2021-11-30 15:33:29 +00:00
|
|
|
"binary_tidy",
|
|
|
|
"binary_darwin",
|
2021-12-15 07:45:27 +00:00
|
|
|
"binary_aarch64",
|
2022-09-21 13:09:24 +00:00
|
|
|
"binary_aarch64_v80compat",
|
2021-11-30 15:33:29 +00:00
|
|
|
"binary_freebsd",
|
2021-12-15 07:45:27 +00:00
|
|
|
"binary_darwin_aarch64",
|
|
|
|
"binary_ppc64le",
|
2022-12-19 19:00:21 +00:00
|
|
|
"binary_amd64_compat",
|
2021-11-30 15:33:29 +00:00
|
|
|
],
|
|
|
|
},
|
2021-11-12 11:12:42 +00:00
|
|
|
"tests_config": {
|
2022-01-10 16:45:17 +00:00
|
|
|
# required_build - build name for artifacts
|
|
|
|
# force_tests - force success status for tests
|
2023-01-25 21:59:40 +00:00
|
|
|
"Install packages (amd64)": {
|
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
|
|
|
"Install packages (arm64)": {
|
|
|
|
"required_build": "package_aarch64",
|
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateful tests (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateful tests (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateful tests (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (ubsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_ubsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (debug)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (release)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (aarch64)": {
|
2021-12-20 11:40:27 +00:00
|
|
|
"required_build": "package_aarch64",
|
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (release, DatabaseOrdinary)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:32:54 +00:00
|
|
|
"Stateful tests (release, DatabaseReplicated)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2023-02-03 13:34:18 +00:00
|
|
|
# Stateful tests for parallel replicas
|
|
|
|
"Stateful tests (release, ParallelReplicas)": {
|
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
|
|
|
"Stateful tests (debug, ParallelReplicas)": {
|
|
|
|
"required_build": "package_debug",
|
|
|
|
},
|
|
|
|
"Stateful tests (asan, ParallelReplicas)": {
|
|
|
|
"required_build": "package_asan",
|
|
|
|
},
|
|
|
|
"Stateful tests (msan, ParallelReplicas)": {
|
|
|
|
"required_build": "package_msan",
|
|
|
|
},
|
|
|
|
"Stateful tests (ubsan, ParallelReplicas)": {
|
|
|
|
"required_build": "package_ubsan",
|
|
|
|
},
|
|
|
|
"Stateful tests (tsan, ParallelReplicas)": {
|
|
|
|
"required_build": "package_tsan",
|
|
|
|
},
|
|
|
|
# End stateful tests for parallel replicas
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateless tests (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateless tests (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateless tests (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (ubsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_ubsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (debug)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (release)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (aarch64)": {
|
2021-12-20 11:40:27 +00:00
|
|
|
"required_build": "package_aarch64",
|
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (release, wide parts enabled)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2023-04-17 15:23:02 +00:00
|
|
|
"Stateless tests (release, analyzer)": {
|
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (release, DatabaseOrdinary)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (release, DatabaseReplicated)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:36:25 +00:00
|
|
|
"Stateless tests (release, s3 storage)": {
|
2022-02-01 07:20:06 +00:00
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
2022-07-30 22:15:49 +00:00
|
|
|
"Stateless tests (debug, s3 storage)": {
|
2022-03-14 10:08:33 +00:00
|
|
|
"required_build": "package_debug",
|
|
|
|
},
|
2022-09-05 20:13:07 +00:00
|
|
|
"Stateless tests (tsan, s3 storage)": {
|
2022-03-14 10:08:33 +00:00
|
|
|
"required_build": "package_tsan",
|
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stress test (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stress test (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stress test (ubsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_ubsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stress test (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:41:49 +00:00
|
|
|
"Stress test (debug)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2023-01-20 20:22:03 +00:00
|
|
|
"Upgrade check (asan)": {
|
|
|
|
"required_build": "package_asan",
|
|
|
|
},
|
|
|
|
"Upgrade check (tsan)": {
|
|
|
|
"required_build": "package_tsan",
|
|
|
|
},
|
|
|
|
"Upgrade check (msan)": {
|
|
|
|
"required_build": "package_msan",
|
|
|
|
},
|
|
|
|
"Upgrade check (debug)": {
|
|
|
|
"required_build": "package_debug",
|
|
|
|
},
|
2022-07-21 10:43:42 +00:00
|
|
|
"Integration tests (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Integration tests (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:43:42 +00:00
|
|
|
"Integration tests (release)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Integration tests (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:58:36 +00:00
|
|
|
"Integration tests flaky check (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2023-03-03 11:19:05 +00:00
|
|
|
"Compatibility check (amd64)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2023-03-01 10:37:47 +00:00
|
|
|
"Compatibility check (aarch64)": {
|
|
|
|
"required_build": "package_aarch64",
|
|
|
|
},
|
2022-07-21 10:45:46 +00:00
|
|
|
"Unit tests (release-clang)": {
|
2021-11-26 13:37:46 +00:00
|
|
|
"required_build": "binary_release",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:45:46 +00:00
|
|
|
"Unit tests (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:45:46 +00:00
|
|
|
"Unit tests (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:45:46 +00:00
|
|
|
"Unit tests (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:45:46 +00:00
|
|
|
"Unit tests (ubsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_ubsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 10:47:49 +00:00
|
|
|
"AST fuzzer (debug)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_debug",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-09-01 07:59:01 +00:00
|
|
|
"AST fuzzer (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-09-01 07:59:01 +00:00
|
|
|
"AST fuzzer (msan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_msan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-09-01 07:59:01 +00:00
|
|
|
"AST fuzzer (tsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_tsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-09-01 07:59:01 +00:00
|
|
|
"AST fuzzer (ubsan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_ubsan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-08-31 12:45:05 +00:00
|
|
|
"Stateless tests flaky check (asan)": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "package_asan",
|
2021-11-12 11:12:42 +00:00
|
|
|
},
|
2022-07-21 11:10:22 +00:00
|
|
|
"ClickHouse Keeper Jepsen": {
|
2021-11-26 10:57:36 +00:00
|
|
|
"required_build": "binary_release",
|
2021-11-17 09:41:19 +00:00
|
|
|
},
|
2022-11-07 08:49:26 +00:00
|
|
|
"ClickHouse Server Jepsen": {
|
|
|
|
"required_build": "binary_release",
|
|
|
|
},
|
2022-06-02 12:29:24 +00:00
|
|
|
"Performance Comparison": {
|
2022-05-13 11:36:08 +00:00
|
|
|
"required_build": "package_release",
|
2022-06-02 14:13:52 +00:00
|
|
|
"test_grep_exclude_filter": "",
|
2021-12-14 17:47:45 +00:00
|
|
|
},
|
2022-05-24 19:47:49 +00:00
|
|
|
"Performance Comparison Aarch64": {
|
|
|
|
"required_build": "package_aarch64",
|
2022-09-15 10:48:47 +00:00
|
|
|
"test_grep_exclude_filter": "",
|
2021-12-14 17:47:45 +00:00
|
|
|
},
|
2022-10-18 07:52:11 +00:00
|
|
|
"SQLancer (release)": {
|
2022-10-17 14:46:50 +00:00
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
2022-10-21 11:48:58 +00:00
|
|
|
"SQLancer (debug)": {
|
|
|
|
"required_build": "package_debug",
|
|
|
|
},
|
2023-04-16 10:11:35 +00:00
|
|
|
"Sqllogic test (release)": {
|
|
|
|
"required_build": "package_release",
|
|
|
|
},
|
2021-12-14 17:47:45 +00:00
|
|
|
},
|
2022-01-12 12:14:31 +00:00
|
|
|
} # type: dict
|
2022-07-30 05:07:22 +00:00
|
|
|
|
|
|
|
# checks required by Mergeable Check
|
|
|
|
REQUIRED_CHECKS = [
|
|
|
|
"ClickHouse build check",
|
|
|
|
"ClickHouse special build check",
|
2023-04-24 08:39:49 +00:00
|
|
|
"Docs Check",
|
|
|
|
"Fast test",
|
2022-08-08 04:20:09 +00:00
|
|
|
"Stateful tests (release)",
|
|
|
|
"Stateless tests (release)",
|
2023-06-22 21:24:27 +00:00
|
|
|
"Stateless tests (debug) [1/5]",
|
|
|
|
"Stateless tests (debug) [2/5]",
|
|
|
|
"Stateless tests (debug) [3/5]",
|
|
|
|
"Stateless tests (debug) [4/5]",
|
|
|
|
"Stateless tests (debug) [5/5]",
|
|
|
|
"AST fuzzer (asan)",
|
|
|
|
"AST fuzzer (msan)",
|
|
|
|
"AST fuzzer (tsan)",
|
|
|
|
"AST fuzzer (ubsan)",
|
|
|
|
"AST fuzzer (debug)",
|
|
|
|
"Compatibility check (aarch64)",
|
|
|
|
"Compatibility check (amd64)",
|
|
|
|
"Install packages (amd64)",
|
|
|
|
"Install packages (arm64)",
|
|
|
|
"Integration tests (asan) [1/6]",
|
|
|
|
"Integration tests (asan) [2/6]",
|
|
|
|
"Integration tests (asan) [3/6]",
|
|
|
|
"Integration tests (asan) [4/6]",
|
|
|
|
"Integration tests (asan) [5/6]",
|
|
|
|
"Integration tests (asan) [6/6]",
|
|
|
|
"Integration tests (release) [1/4]",
|
|
|
|
"Integration tests (release) [2/4]",
|
|
|
|
"Integration tests (release) [3/4]",
|
|
|
|
"Integration tests (release) [4/4]",
|
|
|
|
"Integration tests (tsan) [1/6]",
|
|
|
|
"Integration tests (tsan) [2/6]",
|
|
|
|
"Integration tests (tsan) [3/6]",
|
|
|
|
"Integration tests (tsan) [4/6]",
|
|
|
|
"Integration tests (tsan) [5/6]",
|
|
|
|
"Integration tests (tsan) [6/6]",
|
|
|
|
"Integration tests flaky check (asan)",
|
|
|
|
"Stateful tests (aarch64)",
|
|
|
|
"Stateful tests (asan)",
|
|
|
|
"Stateful tests (asan, ParallelReplicas)",
|
|
|
|
"Stateful tests (debug)",
|
|
|
|
"Stateful tests (debug, ParallelReplicas)",
|
|
|
|
"Stateful tests (msan)",
|
|
|
|
"Stateful tests (msan, ParallelReplicas)",
|
|
|
|
"Stateful tests (release, ParallelReplicas)",
|
|
|
|
"Stateful tests (tsan)",
|
|
|
|
"Stateful tests (tsan, ParallelReplicas)",
|
|
|
|
"Stateful tests (ubsan)",
|
|
|
|
"Stateful tests (ubsan, ParallelReplicas)",
|
|
|
|
"Stateless tests (aarch64)",
|
|
|
|
"Stateless tests (asan) [1/4]",
|
|
|
|
"Stateless tests (asan) [2/4]",
|
|
|
|
"Stateless tests (asan) [3/4]",
|
|
|
|
"Stateless tests (asan) [4/4]",
|
|
|
|
"Stateless tests (debug) [1/5]",
|
|
|
|
"Stateless tests (debug) [2/5]",
|
|
|
|
"Stateless tests (debug) [3/5]",
|
|
|
|
"Stateless tests (debug) [4/5]",
|
|
|
|
"Stateless tests (debug) [5/5]",
|
|
|
|
"Stateless tests (debug, s3 storage) [1/6]",
|
|
|
|
"Stateless tests (debug, s3 storage) [2/6]",
|
|
|
|
"Stateless tests (debug, s3 storage) [3/6]",
|
|
|
|
"Stateless tests (debug, s3 storage) [4/6]",
|
|
|
|
"Stateless tests (debug, s3 storage) [5/6]",
|
|
|
|
"Stateless tests (debug, s3 storage) [6/6]",
|
|
|
|
"Stateless tests (msan) [1/6]",
|
|
|
|
"Stateless tests (msan) [2/6]",
|
|
|
|
"Stateless tests (msan) [3/6]",
|
|
|
|
"Stateless tests (msan) [4/6]",
|
|
|
|
"Stateless tests (msan) [5/6]",
|
|
|
|
"Stateless tests (msan) [6/6]",
|
|
|
|
"Stateless tests (release, DatabaseReplicated) [1/4]",
|
|
|
|
"Stateless tests (release, DatabaseReplicated) [2/4]",
|
|
|
|
"Stateless tests (release, DatabaseReplicated) [3/4]",
|
|
|
|
"Stateless tests (release, DatabaseReplicated) [4/4]",
|
|
|
|
"Stateless tests (release, s3 storage) [1/2]",
|
|
|
|
"Stateless tests (release, s3 storage) [2/2]",
|
|
|
|
"Stateless tests (release, wide parts enabled)",
|
|
|
|
"Stateless tests (tsan) [1/5]",
|
|
|
|
"Stateless tests (tsan) [2/5]",
|
|
|
|
"Stateless tests (tsan) [3/5]",
|
|
|
|
"Stateless tests (tsan) [4/5]",
|
|
|
|
"Stateless tests (tsan) [5/5]",
|
|
|
|
"Stateless tests (tsan, s3 storage) [1/5]",
|
|
|
|
"Stateless tests (tsan, s3 storage) [2/5]",
|
|
|
|
"Stateless tests (tsan, s3 storage) [3/5]",
|
|
|
|
"Stateless tests (tsan, s3 storage) [4/5]",
|
|
|
|
"Stateless tests (tsan, s3 storage) [5/5]",
|
|
|
|
"Stateless tests (ubsan) [1/2]",
|
|
|
|
"Stateless tests (ubsan) [2/2]",
|
|
|
|
"Stress test (asan)",
|
|
|
|
"Stress test (debug)",
|
|
|
|
"Stress test (msan)",
|
|
|
|
"Stress test (tsan)",
|
|
|
|
"Stress test (ubsan)",
|
|
|
|
"Upgrade check (asan)",
|
|
|
|
"Upgrade check (debug)",
|
|
|
|
"Upgrade check (msan)",
|
|
|
|
"Upgrade check (tsan)",
|
2023-04-24 08:39:49 +00:00
|
|
|
"Style Check",
|
2022-08-15 23:05:40 +00:00
|
|
|
"Unit tests (asan)",
|
|
|
|
"Unit tests (msan)",
|
2023-04-24 08:39:49 +00:00
|
|
|
"Unit tests (release-clang)",
|
2022-08-15 23:05:40 +00:00
|
|
|
"Unit tests (tsan)",
|
|
|
|
"Unit tests (ubsan)",
|
2022-07-30 05:07:22 +00:00
|
|
|
]
|
2023-04-12 19:07:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
class CheckDescription:
|
|
|
|
name: str
|
|
|
|
description: str # the check descriptions, will be put into the status table
|
|
|
|
match_func: Callable[[str], bool] # the function to check vs the commit status
|
|
|
|
|
2023-04-25 15:02:41 +00:00
|
|
|
def __hash__(self) -> int:
|
|
|
|
return hash(self.name + self.description)
|
|
|
|
|
2023-04-12 19:07:12 +00:00
|
|
|
|
|
|
|
CHECK_DESCRIPTIONS = [
|
|
|
|
CheckDescription(
|
|
|
|
"AST fuzzer",
|
|
|
|
"Runs randomly generated queries to catch program errors. "
|
|
|
|
"The build type is optionally given in parenthesis. "
|
2023-05-02 10:42:26 +00:00
|
|
|
"If it fails, ask a maintainer for help",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("AST fuzzer"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Bugfix validate check",
|
|
|
|
"Checks that either a new test (functional or integration) or there "
|
|
|
|
"some changed tests that fail with the binary built on master branch",
|
|
|
|
lambda x: x == "Bugfix validate check",
|
|
|
|
),
|
2023-04-20 11:55:33 +00:00
|
|
|
CheckDescription(
|
|
|
|
"CI running",
|
2023-04-26 18:08:09 +00:00
|
|
|
"A meta-check that indicates the running CI. Normally, it's in <b>success</b> or "
|
|
|
|
"<b>pending</b> state. The failed status indicates some problems with the PR",
|
2023-04-20 11:55:33 +00:00
|
|
|
lambda x: x == "CI running",
|
|
|
|
),
|
2023-04-12 19:07:12 +00:00
|
|
|
CheckDescription(
|
|
|
|
"ClickHouse build check",
|
|
|
|
"Builds ClickHouse in various configurations for use in further steps. "
|
|
|
|
"You have to fix the builds that fail. Build logs often has enough "
|
|
|
|
"information to fix the error, but you might have to reproduce the failure "
|
2023-04-26 18:08:09 +00:00
|
|
|
"locally. The <b>cmake</b> options can be found in the build log, grepping for "
|
|
|
|
'<b>cmake</b>. Use these options and follow the <a href="'
|
2023-05-02 10:42:26 +00:00
|
|
|
'https://clickhouse.com/docs/en/development/build">general build process</a>',
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("ClickHouse") and x.endswith("build check"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Compatibility check",
|
2023-04-26 18:08:09 +00:00
|
|
|
"Checks that <b>clickhouse</b> binary runs on distributions with old libc "
|
2023-05-02 10:42:26 +00:00
|
|
|
"versions. If it fails, ask a maintainer for help",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Compatibility check"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Docker image for servers",
|
|
|
|
"The check to build and optionally push the mentioned image to docker hub",
|
|
|
|
lambda x: x.startswith("Docker image")
|
|
|
|
and (x.endswith("building check") or x.endswith("build and push")),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Docs Check", "Builds and tests the documentation", lambda x: x == "Docs Check"
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Fast test",
|
|
|
|
"Normally this is the first check that is ran for a PR. It builds ClickHouse "
|
2023-04-26 18:08:09 +00:00
|
|
|
'and runs most of <a href="https://clickhouse.com/docs/en/development/tests'
|
|
|
|
'#functional-tests">stateless functional tests</a>, '
|
2023-04-12 19:07:12 +00:00
|
|
|
"omitting some. If it fails, further checks are not started until it is fixed. "
|
|
|
|
"Look at the report to see which tests fail, then reproduce the failure "
|
2023-04-26 18:08:09 +00:00
|
|
|
'locally as described <a href="https://clickhouse.com/docs/en/development/'
|
2023-05-02 10:42:26 +00:00
|
|
|
'tests#functional-test-locally">here</a>',
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x == "Fast test",
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Flaky tests",
|
2023-05-02 10:42:26 +00:00
|
|
|
"Checks if new added or modified tests are flaky by running them repeatedly, "
|
|
|
|
"in parallel, with more randomization. Functional tests are run 100 times "
|
|
|
|
"with address sanitizer, and additional randomization of thread scheduling. "
|
|
|
|
"Integrational tests are run up to 10 times. If at least once a new test has "
|
|
|
|
"failed, or was too long, this check will be red. We don't allow flaky tests, "
|
|
|
|
'read <a href="https://clickhouse.com/blog/decorating-a-christmas-tree-with-'
|
|
|
|
'the-help-of-flaky-tests/">the doc</a>',
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: "tests flaky check" in x,
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Install packages",
|
|
|
|
"Checks that the built packages are installable in a clear environment",
|
|
|
|
lambda x: x.startswith("Install packages ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Integration tests",
|
|
|
|
"The integration tests report. In parenthesis the package type is given, "
|
|
|
|
"and in square brackets are the optional part/total tests",
|
|
|
|
lambda x: x.startswith("Integration tests ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Mergeable Check",
|
|
|
|
"Checks if all other necessary checks are successful",
|
|
|
|
lambda x: x == "Mergeable Check",
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Performance Comparison",
|
|
|
|
"Measure changes in query performance. The performance test report is "
|
2023-04-26 18:08:09 +00:00
|
|
|
'described in detail <a href="https://github.com/ClickHouse/ClickHouse/tree'
|
|
|
|
'/master/docker/test/performance-comparison#how-to-read-the-report">here</a>. '
|
2023-04-12 19:07:12 +00:00
|
|
|
"In square brackets are the optional part/total tests",
|
|
|
|
lambda x: x.startswith("Performance Comparison"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Push to Dockerhub",
|
|
|
|
"The check for building and pushing the CI related docker images to docker hub",
|
|
|
|
lambda x: x.startswith("Push") and "to Dockerhub" in x,
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Sqllogic",
|
2023-04-26 18:08:09 +00:00
|
|
|
"Run clickhouse on the "
|
|
|
|
'<a href="https://www.sqlite.org/sqllogictest">sqllogic</a> '
|
2023-05-02 10:42:26 +00:00
|
|
|
"test set against sqlite and checks that all statements are passed",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Sqllogic test"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"SQLancer",
|
|
|
|
"Fuzzing tests that detect logical bugs with "
|
2023-05-02 10:42:26 +00:00
|
|
|
'<a href="https://github.com/sqlancer/sqlancer">SQLancer</a> tool',
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("SQLancer"),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Stateful tests",
|
|
|
|
"Runs stateful functional tests for ClickHouse binaries built in various "
|
2023-05-02 10:42:26 +00:00
|
|
|
"configurations -- release, debug, with sanitizers, etc",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Stateful tests ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Stateless tests",
|
|
|
|
"Runs stateless functional tests for ClickHouse binaries built in various "
|
2023-05-02 10:42:26 +00:00
|
|
|
"configurations -- release, debug, with sanitizers, etc",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Stateless tests ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Stress test",
|
|
|
|
"Runs stateless functional tests concurrently from several clients to detect "
|
2023-05-02 10:42:26 +00:00
|
|
|
"concurrency-related errors",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Stress test ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Style Check",
|
|
|
|
"Runs a set of checks to keep the code style clean. If some of tests failed, "
|
2023-05-02 10:42:26 +00:00
|
|
|
"see the related log from the report",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x == "Style Check",
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Unit tests",
|
|
|
|
"Runs the unit tests for different release types",
|
|
|
|
lambda x: x.startswith("Unit tests ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Upgrade check",
|
|
|
|
"Runs stress tests on server version from last release and then tries to "
|
|
|
|
"upgrade it to the version from the PR. It checks if the new server can "
|
2023-05-02 10:42:26 +00:00
|
|
|
"successfully startup without any errors, crashes or sanitizer asserts",
|
2023-04-12 19:07:12 +00:00
|
|
|
lambda x: x.startswith("Upgrade check ("),
|
|
|
|
),
|
|
|
|
CheckDescription(
|
|
|
|
"Falback for unknown",
|
|
|
|
"There's no description for the check yet, please add it to "
|
|
|
|
"tests/ci/ci_config.py:CHECK_DESCRIPTIONS",
|
|
|
|
lambda x: True,
|
|
|
|
),
|
|
|
|
]
|