From 7b1b7a51b562bb275001a50d17edc36beea880fb Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 6 Jul 2026 20:44:39 -0400 Subject: [PATCH 01/13] fix docker_compose_postgresql_dotnet_client.yml --- .../compose/docker_compose_postgresql_dotnet_client.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/compose/docker_compose_postgresql_dotnet_client.yml b/tests/integration/compose/docker_compose_postgresql_dotnet_client.yml index 754b0547194f..2f19c4ea204e 100644 --- a/tests/integration/compose/docker_compose_postgresql_dotnet_client.yml +++ b/tests/integration/compose/docker_compose_postgresql_dotnet_client.yml @@ -1,5 +1,5 @@ services: postgresql-dotnet-client: - image: clickhouse/mysql_dotnet_client:${DOCKER_MYSQL_DOTNET_CLIENT_TAG:-latest} + image: altinityinfra/mysql_dotnet_client:${DOCKER_MYSQL_DOTNET_CLIENT_TAG:-latest} # to keep container running command: sleep infinity From dc9ef2d8f2b158cc9b01b08d848dccf806ebe5ac Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 6 Jul 2026 21:12:17 -0400 Subject: [PATCH 02/13] fix unit tests --- ci/defs/job_configs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ci/defs/job_configs.py b/ci/defs/job_configs.py index 65cdee8fde05..06dbc1c28eca 100644 --- a/ci/defs/job_configs.py +++ b/ci/defs/job_configs.py @@ -141,7 +141,8 @@ common_unit_test_job_config = Job.Config( name=JobNames.UNITTEST, runs_on=[], # from parametrize() - command="python3 ./ci/jobs/unit_tests_job.py --gtest_filter=-FunctionsStress.*", + # `SilkFiberSocketTest` requires invariant TSC, which is not exposed on all runners. + command="python3 ./ci/jobs/unit_tests_job.py --gtest_filter=-FunctionsStress.*:SilkFiberSocketTest*", run_in_docker="altinityinfra/test-base+--privileged", digest_config=Job.CacheDigestConfig( include_paths=[ From 0b6951ce79545ecae87039c142d3318877931789 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:37:42 -0400 Subject: [PATCH 03/13] fix CI Tests --- .github/workflows/pull_request.yml | 2 +- ci/defs/job_configs.py | 2 +- ci/jobs/functional_tests.py | 4 +- ci/jobs/scripts/clickhouse_version.py | 4 +- ci/tests/test_clickhouse_version.py | 56 ++++++++--------------- ci/tests/test_functional_tests_results.py | 4 +- 6 files changed, 29 insertions(+), 43 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c600cd1fb621..6257d46786cd 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -265,7 +265,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Fast test' --workflow "PR" --ci --timestamp ci_tests: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'Q0kgVGVzdHM=') }} name: "CI Tests" diff --git a/ci/defs/job_configs.py b/ci/defs/job_configs.py index 06dbc1c28eca..f31a5bd1df86 100644 --- a/ci/defs/job_configs.py +++ b/ci/defs/job_configs.py @@ -213,7 +213,7 @@ class JobConfigs: ) ci_tests = Job.Config( name=JobNames.CI_TESTS, - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, command="python3 ./ci/jobs/ci_tests_job.py", timeout=1200, run_in_docker=f"altinityinfra/integration-tests-runner+root+--privileged+--dns-search='.'+--security-opt seccomp=unconfined+--cap-add=SYS_PTRACE+{docker_sock_mount}+--volume=clickhouse_integration_tests_volume:/var/lib/docker+--cgroupns=host", diff --git a/ci/jobs/functional_tests.py b/ci/jobs/functional_tests.py index 527315f21002..344494715739 100644 --- a/ci/jobs/functional_tests.py +++ b/ci/jobs/functional_tests.py @@ -863,7 +863,9 @@ def start(): test_result.status = Result.Status.ERROR break - ft_res_processor_bt = FTResultsProcessor(wd=temp_dir) + ft_res_processor_bt = FTResultsProcessor( + wd=temp_dir, test_options=test_options + ) bt_runner_exit_code = run_tests( batch_num=0, batch_total=0, diff --git a/ci/jobs/scripts/clickhouse_version.py b/ci/jobs/scripts/clickhouse_version.py index de6e1e550e56..002b6c4d5514 100644 --- a/ci/jobs/scripts/clickhouse_version.py +++ b/ci/jobs/scripts/clickhouse_version.py @@ -1,6 +1,5 @@ import re import sys -import os from pathlib import Path from ci.praktika.info import Info @@ -9,8 +8,7 @@ # NOTE(vnemkov): extremely hackish, buts allows to reuse code from version_helper and git_helper with our modifications. # allow to import other packages that are located in `tests/ci` directory, like `git_helper` -import tests.ci -sys.path.append(os.path.abspath(tests.ci.__path__._path[0])) +sys.path.append(str(Path(__file__).resolve().parents[3] / "tests" / "ci")) class CHVersion: FILE_WITH_VERSION_PATH = "./cmake/autogenerated_versions.txt" diff --git a/ci/tests/test_clickhouse_version.py b/ci/tests/test_clickhouse_version.py index bfccf3d23b9d..cf4ec9b6a13e 100644 --- a/ci/tests/test_clickhouse_version.py +++ b/ci/tests/test_clickhouse_version.py @@ -1,16 +1,8 @@ """ Tests for `ci.jobs.scripts.clickhouse_version.CHVersion.get_current_version_as_dict`. -In PRs the version tweak is pinned to 1 instead of being derived from the git -commit count. Closing and reopening a PR makes GitHub rebuild the ephemeral -merge commit on an advanced master, so `git rev-list --count ...` returns a -different tweak for the same HEAD commit. Two builds for one HEAD sha would -then upload artifacts with diverging version strings to the same S3 prefix and -the "Install packages (*_release)" job would later abort with -"cannot install both clickhouse-keeper-...-250 and ...-185". Pinning tweak=1 in -PRs keeps the version stable per HEAD commit and removes that precondition. - -On master / release branches the tweak is still the real commit count. +This branch uses the release version from `cmake/autogenerated_versions.txt` +as-is instead of deriving CI-only version fields from the current checkout. """ import os @@ -21,13 +13,15 @@ from ci.jobs.scripts.clickhouse_version import CHVersion _RELEASE = { - "major": 26, - "minor": 6, - "patch": 1, - "revision": "54511", - "githash": "cdee4c67ae5d33f5d1853693325b23ed88a36cfc", - "describe": "v26.6.1.1-testing", - "string": "26.6.1.1", + "major": 99, + "minor": 88, + "patch": 77, + "revision": "12345", + "githash": "release-file-sha", + "tweak": "66", + "flavour": "customflavour", + "describe": "v99.88.77.66.customflavour", + "string": "99.88.77.66.customflavour", } @@ -58,19 +52,14 @@ def fake_get_output(command, verbose=False): return calls -def test_pr_pins_tweak_to_one(monkeypatch): - # A PR build: tweak is pinned regardless of the real commit count. +def test_pr_uses_release_version_as_is(monkeypatch): calls = _patch(monkeypatch, pr_number=107138, commit_count="250") version = CHVersion.get_current_version_as_dict() - assert version["tweak"] == 1 - assert version["string"] == "26.6.1.1" - assert version["describe"] == "v26.6.1.1-testing" - # git rev-list must not be consulted in PRs. + assert version == _RELEASE assert calls == [] -def test_pr_tweak_stable_across_reopen(monkeypatch): - # Same HEAD, different merge-commit count after a close/reopen: still 1. +def test_pr_version_stable_across_reopen(monkeypatch): v1 = ( _patch(monkeypatch, pr_number=107138, commit_count="185"), CHVersion.get_current_version_as_dict()["string"], @@ -79,21 +68,17 @@ def test_pr_tweak_stable_across_reopen(monkeypatch): _patch(monkeypatch, pr_number=107138, commit_count="250"), CHVersion.get_current_version_as_dict()["string"], )[1] - assert v1 == v2 == "26.6.1.1" + assert v1 == v2 == _RELEASE["string"] -def test_master_uses_real_commit_count(monkeypatch): - # pr_number == 0 (master / release branch): tweak is the real count. +def test_master_uses_release_version_as_is(monkeypatch): calls = _patch(monkeypatch, pr_number=0, commit_count="106") version = CHVersion.get_current_version_as_dict() - assert version["tweak"] == 106 - assert version["string"] == "26.6.1.106" - assert len(calls) == 1 - assert "git rev-list --count --first-parent" in calls[0] + assert version == _RELEASE + assert calls == [] -def test_master_shallow_checkout_falls_back_to_one(monkeypatch): - # pr_number == 0 but git rev-list returns garbage: keep the tweak=1 fallback. +def test_master_shallow_checkout_uses_release_version_as_is(monkeypatch): monkeypatch.setattr( CHVersion, "get_release_version_as_dict", classmethod(lambda cls: dict(_RELEASE)) ) @@ -105,5 +90,4 @@ def test_master_shallow_checkout_falls_back_to_one(monkeypatch): lambda command, verbose=False: "not-a-number", ) version = CHVersion.get_current_version_as_dict() - assert version["tweak"] == 1 - assert version["string"] == "26.6.1.1" + assert version == _RELEASE diff --git a/ci/tests/test_functional_tests_results.py b/ci/tests/test_functional_tests_results.py index ef63c8184996..d5fbdabfc87b 100644 --- a/ci/tests/test_functional_tests_results.py +++ b/ci/tests/test_functional_tests_results.py @@ -36,7 +36,9 @@ def _process(tmp_path, output, runner_exit_code): (tmp_path / "test_result.txt").write_text(output, encoding="utf-8") - return FTResultsProcessor(wd=str(tmp_path)).run(runner_exit_code=runner_exit_code) + return FTResultsProcessor(wd=str(tmp_path), test_options=[]).run( + runner_exit_code=runner_exit_code + ) def _named(result, name): From 8c6f30eb925bfc4259fad8c5ceb4488b09cf717d Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:42:29 -0400 Subject: [PATCH 04/13] Don't run finish_workflow on cancel --- .github/workflows/master.yml | 2 +- .github/workflows/pull_request.yml | 2 +- ci/praktika/yaml_generator.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index a2e56f1a3f65..276984a1fbf1 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -4884,7 +4884,7 @@ jobs: finish_workflow: runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] needs: [ast_fuzzer_amd_debug, ast_fuzzer_amd_msan, ast_fuzzer_amd_tsan, ast_fuzzer_arm_asan_ubsan, build_amd_asan_ubsan, build_amd_binary, build_amd_debug, build_amd_llvm_coverage_per_test, build_amd_msan, build_amd_release, build_amd_tsan, build_arm_asan_ubsan, build_arm_binary, build_arm_debug, build_arm_msan, build_arm_release, build_arm_tsan, build_arm_ubsan, buzzhouse_amd_debug, buzzhouse_amd_msan, buzzhouse_amd_tsan, buzzhouse_arm_asan_ubsan, clickbench_amd_release, clickbench_arm_release, compatibility_check_amd_release, compatibility_check_arm_release, config_workflow, docker_keeper_image, docker_server_image, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, install_packages_amd_release, install_packages_arm_release, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_1_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_2_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_3_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_4_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_5_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_6_6, integration_tests_amd_msan_1_6, integration_tests_amd_msan_2_6, integration_tests_amd_msan_3_6, integration_tests_amd_msan_4_6, integration_tests_amd_msan_5_6, integration_tests_amd_msan_6_6, integration_tests_amd_tsan_1_6, integration_tests_amd_tsan_2_6, integration_tests_amd_tsan_3_6, integration_tests_amd_tsan_4_6, integration_tests_amd_tsan_5_6, integration_tests_amd_tsan_6_6, integration_tests_arm_binary_distributed_plan_1_4, integration_tests_arm_binary_distributed_plan_2_4, integration_tests_arm_binary_distributed_plan_3_4, integration_tests_arm_binary_distributed_plan_4_4, sign_release_amd_release, sign_release_arm_release, source_upload, sqllogic_test, sqlstorm_test, sqltest, stateless_tests_amd_asan_ubsan_db_disk_distributed_plan_sequential_1_2, stateless_tests_amd_asan_ubsan_db_disk_distributed_plan_sequential_2_2, stateless_tests_amd_asan_ubsan_distributed_plan_parallel_1_2, stateless_tests_amd_asan_ubsan_distributed_plan_parallel_2_2, stateless_tests_amd_debug_distributed_plan_s3_storage_parallel, stateless_tests_amd_debug_distributed_plan_s3_storage_sequential, stateless_tests_amd_debug_parallel, stateless_tests_amd_debug_sequential, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_1_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_2_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_3_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_4_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_5_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_6_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_7_8, stateless_tests_amd_llvm_coverage_per_test_per_test_coverage_8_8, stateless_tests_amd_msan_wasmedge_parallel_1_4, stateless_tests_amd_msan_wasmedge_parallel_2_4, stateless_tests_amd_msan_wasmedge_parallel_3_4, stateless_tests_amd_msan_wasmedge_parallel_4_4, stateless_tests_amd_msan_wasmedge_sequential_1_2, stateless_tests_amd_msan_wasmedge_sequential_2_2, stateless_tests_amd_tsan_parallel_1_2, stateless_tests_amd_tsan_parallel_2_2, stateless_tests_amd_tsan_s3_storage_parallel_1_2, stateless_tests_amd_tsan_s3_storage_parallel_2_2, stateless_tests_amd_tsan_s3_storage_sequential_1_2, stateless_tests_amd_tsan_s3_storage_sequential_2_2, stateless_tests_amd_tsan_sequential_1_2, stateless_tests_amd_tsan_sequential_2_2, stateless_tests_arm_asan_ubsan_azure_parallel, stateless_tests_arm_asan_ubsan_azure_sequential, stateless_tests_arm_binary_parallel, stateless_tests_arm_binary_sequential, stress_test_amd_asan_ubsan, stress_test_amd_debug, stress_test_amd_msan, stress_test_amd_tsan, stress_test_arm_asan_ubsan, stress_test_arm_asan_ubsan_s3, stress_test_arm_debug, stress_test_arm_msan, stress_test_arm_release, stress_test_arm_tsan, stress_test_arm_ubsan, stress_test_azure_amd_msan, stress_test_azure_amd_tsan, unit_tests_asan_ubsan, unit_tests_asan_ubsan_function_prop_fuzzer, unit_tests_msan, unit_tests_msan_function_prop_fuzzer, unit_tests_tsan, unit_tests_tsan_function_prop_fuzzer] - if: ${{ always() && needs.config_workflow.outputs.pipeline_status != '' }} + if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }} name: "Finish Workflow" outputs: data: ${{ steps.run.outputs.DATA }} diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6257d46786cd..dbf68e57fa10 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -4679,7 +4679,7 @@ jobs: finish_workflow: runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] needs: [ast_fuzzer_amd_debug, ast_fuzzer_amd_debug_targeted, ast_fuzzer_amd_debug_targeted_old_compatibility, ast_fuzzer_amd_msan, ast_fuzzer_amd_tsan, ast_fuzzer_arm_asan_ubsan, build_amd_asan_ubsan, build_amd_binary, build_amd_debug, build_amd_msan, build_amd_release, build_amd_tsan, build_arm_asan_ubsan, build_arm_binary, build_arm_debug, build_arm_msan, build_arm_release, build_arm_tidy, build_arm_tsan, build_arm_ubsan, build_toolchain_pgo_bolt_aarch64, build_toolchain_pgo_bolt_amd64, buzzhouse_amd_debug, buzzhouse_amd_msan, buzzhouse_amd_tsan, buzzhouse_arm_asan_ubsan, ci_tests, compatibility_check_amd_release, compatibility_check_arm_release, config_workflow, docker_keeper_image, docker_server_image, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test, install_packages_amd_release, install_packages_arm_release, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_1_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_2_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_3_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_4_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_5_6, integration_tests_amd_asan_ubsan_db_disk_old_analyzer_6_6, integration_tests_amd_asan_ubsan_targeted, integration_tests_amd_msan_1_6, integration_tests_amd_msan_2_6, integration_tests_amd_msan_3_6, integration_tests_amd_msan_4_6, integration_tests_amd_msan_5_6, integration_tests_amd_msan_6_6, integration_tests_amd_tsan_1_6, integration_tests_amd_tsan_2_6, integration_tests_amd_tsan_3_6, integration_tests_amd_tsan_4_6, integration_tests_amd_tsan_5_6, integration_tests_amd_tsan_6_6, integration_tests_arm_binary_distributed_plan_1_4, integration_tests_arm_binary_distributed_plan_2_4, integration_tests_arm_binary_distributed_plan_3_4, integration_tests_arm_binary_distributed_plan_4_4, keeper_stress_tests_pr, quick_functional_tests, source_upload, sqllogic_test, sqlstorm_test, stateless_tests_amd_asan_ubsan_db_disk_distributed_plan_sequential_1_2, stateless_tests_amd_asan_ubsan_db_disk_distributed_plan_sequential_2_2, stateless_tests_amd_asan_ubsan_distributed_plan_parallel_1_2, stateless_tests_amd_asan_ubsan_distributed_plan_parallel_2_2, stateless_tests_amd_debug_distributed_plan_s3_storage_parallel, stateless_tests_amd_debug_distributed_plan_s3_storage_sequential, stateless_tests_amd_debug_parallel, stateless_tests_amd_debug_sequential, stateless_tests_amd_msan_wasmedge_parallel_1_4, stateless_tests_amd_msan_wasmedge_parallel_2_4, stateless_tests_amd_msan_wasmedge_parallel_3_4, stateless_tests_amd_msan_wasmedge_parallel_4_4, stateless_tests_amd_msan_wasmedge_sequential_1_2, stateless_tests_amd_msan_wasmedge_sequential_2_2, stateless_tests_amd_tsan_parallel_1_2, stateless_tests_amd_tsan_parallel_2_2, stateless_tests_amd_tsan_s3_storage_parallel_1_2, stateless_tests_amd_tsan_s3_storage_parallel_2_2, stateless_tests_amd_tsan_s3_storage_sequential_1_2, stateless_tests_amd_tsan_s3_storage_sequential_2_2, stateless_tests_amd_tsan_sequential_1_2, stateless_tests_amd_tsan_sequential_2_2, stateless_tests_arm_asan_ubsan_azure_parallel, stateless_tests_arm_asan_ubsan_azure_sequential, stateless_tests_arm_asan_ubsan_targeted, stateless_tests_arm_binary_parallel, stateless_tests_arm_binary_sequential, stress_test_amd_asan_ubsan, stress_test_amd_debug, stress_test_amd_msan, stress_test_amd_tsan, stress_test_arm_asan_ubsan, stress_test_arm_asan_ubsan_s3, stress_test_arm_debug, stress_test_arm_msan, stress_test_arm_release, stress_test_arm_tsan, stress_test_arm_ubsan, unit_tests_asan_ubsan, unit_tests_asan_ubsan_function_prop_fuzzer, unit_tests_msan, unit_tests_msan_function_prop_fuzzer, unit_tests_tsan, unit_tests_tsan_function_prop_fuzzer] - if: ${{ always() && needs.config_workflow.outputs.pipeline_status != '' }} + if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }} name: "Finish Workflow" outputs: data: ${{ steps.run.outputs.DATA }} diff --git a/ci/praktika/yaml_generator.py b/ci/praktika/yaml_generator.py index df0c6e3ed7fd..3eaa4a56aa08 100644 --- a/ci/praktika/yaml_generator.py +++ b/ci/praktika/yaml_generator.py @@ -241,7 +241,7 @@ class Templates: """ TEMPLATE_IF_EXPRESSION_ALWAYS = """ - if: ${{ always() && needs.config_workflow.outputs.pipeline_status != '' }}\ + if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }}\ """ def __init__(self): From ff0f95d7269c14bf96336ef5ca074f1c95203399 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 6 Jul 2026 22:51:32 -0400 Subject: [PATCH 05/13] try running builds on test runners --- .github/workflows/master.yml | 24 ++++----- .github/workflows/pull_request.yml | 26 +++++----- .github/workflows/pull_request_community.yml | 22 ++++---- ci/defs/job_configs.py | 54 ++++++++++---------- 4 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index a2e56f1a3f65..9892caf1f9dd 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -220,7 +220,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Dockers Build (multiplatform manifest)' --workflow "MasterCI" --ci --timestamp build_amd_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9kZWJ1Zyk=') }} name: "Build (amd_debug)" @@ -262,7 +262,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_debug)' --workflow "MasterCI" --ci --timestamp build_amd_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9hc2FuX3Vic2FuKQ==') }} name: "Build (amd_asan_ubsan)" @@ -304,7 +304,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_asan_ubsan)' --workflow "MasterCI" --ci --timestamp build_amd_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9iaW5hcnkp') }} name: "Build (amd_binary)" @@ -346,7 +346,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_binary)' --workflow "MasterCI" --ci --timestamp build_arm_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9kZWJ1Zyk=') }} name: "Build (arm_debug)" @@ -388,7 +388,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_debug)' --workflow "MasterCI" --ci --timestamp build_arm_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9hc2FuX3Vic2FuKQ==') }} name: "Build (arm_asan_ubsan)" @@ -430,7 +430,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_asan_ubsan)' --workflow "MasterCI" --ci --timestamp build_arm_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV91YnNhbik=') }} name: "Build (arm_ubsan)" @@ -472,7 +472,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_ubsan)' --workflow "MasterCI" --ci --timestamp build_arm_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9iaW5hcnkp') }} name: "Build (arm_binary)" @@ -514,7 +514,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_binary)' --workflow "MasterCI" --ci --timestamp build_amd_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF90c2FuKQ==') }} name: "Build (amd_tsan)" @@ -556,7 +556,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_tsan)' --workflow "MasterCI" --ci --timestamp build_amd_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9tc2FuKQ==') }} name: "Build (amd_msan)" @@ -598,7 +598,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_msan)' --workflow "MasterCI" --ci --timestamp build_arm_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV90c2FuKQ==') }} name: "Build (arm_tsan)" @@ -640,7 +640,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_tsan)' --workflow "MasterCI" --ci --timestamp build_arm_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9tc2FuKQ==') }} name: "Build (arm_msan)" @@ -682,7 +682,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_msan)' --workflow "MasterCI" --ci --timestamp build_amd_llvm_coverage_per_test: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9sbHZtX2NvdmVyYWdlX3Blcl90ZXN0KQ==') }} name: "Build (amd_llvm_coverage_per_test)" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6257d46786cd..7fcb021ce463 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -307,7 +307,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'CI Tests' --workflow "PR" --ci --timestamp build_arm_tidy: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV90aWR5KQ==') }} name: "Build (arm_tidy)" @@ -349,7 +349,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_tidy)' --workflow "PR" --ci --timestamp build_amd_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9kZWJ1Zyk=') }} name: "Build (amd_debug)" @@ -391,7 +391,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_debug)' --workflow "PR" --ci --timestamp build_amd_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9hc2FuX3Vic2FuKQ==') }} name: "Build (amd_asan_ubsan)" @@ -433,7 +433,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_asan_ubsan)' --workflow "PR" --ci --timestamp build_amd_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9iaW5hcnkp') }} name: "Build (amd_binary)" @@ -475,7 +475,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_binary)' --workflow "PR" --ci --timestamp build_arm_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9kZWJ1Zyk=') }} name: "Build (arm_debug)" @@ -517,7 +517,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_debug)' --workflow "PR" --ci --timestamp build_arm_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9hc2FuX3Vic2FuKQ==') }} name: "Build (arm_asan_ubsan)" @@ -559,7 +559,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_asan_ubsan)' --workflow "PR" --ci --timestamp build_arm_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV91YnNhbik=') }} name: "Build (arm_ubsan)" @@ -601,7 +601,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_ubsan)' --workflow "PR" --ci --timestamp build_arm_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9iaW5hcnkp') }} name: "Build (arm_binary)" @@ -643,7 +643,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_binary)' --workflow "PR" --ci --timestamp build_amd_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF90c2FuKQ==') }} name: "Build (amd_tsan)" @@ -685,7 +685,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_tsan)' --workflow "PR" --ci --timestamp build_amd_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9tc2FuKQ==') }} name: "Build (amd_msan)" @@ -727,7 +727,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (amd_msan)' --workflow "PR" --ci --timestamp build_arm_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV90c2FuKQ==') }} name: "Build (arm_tsan)" @@ -769,7 +769,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_tsan)' --workflow "PR" --ci --timestamp build_arm_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9tc2FuKQ==') }} name: "Build (arm_msan)" @@ -4592,7 +4592,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build Toolchain (PGO, BOLT) (amd64)' --workflow "PR" --ci --timestamp build_toolchain_pgo_bolt_aarch64: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgVG9vbGNoYWluIChQR08sIEJPTFQpIChhYXJjaDY0KQ==') }} name: "Build Toolchain (PGO, BOLT) (aarch64)" diff --git a/.github/workflows/pull_request_community.yml b/.github/workflows/pull_request_community.yml index f60cf8bcb593..527b66081678 100644 --- a/.github/workflows/pull_request_community.yml +++ b/.github/workflows/pull_request_community.yml @@ -124,7 +124,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Fast test' --workflow "Community PR" --ci --timestamp build_amd_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9kZWJ1Zyk=') }} name: "Build (amd_debug)" @@ -179,7 +179,7 @@ jobs: path: ci/tmp/*.deb build_amd_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9hc2FuX3Vic2FuKQ==') }} name: "Build (amd_asan_ubsan)" @@ -241,7 +241,7 @@ jobs: path: ci/tmp/*.deb build_amd_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9iaW5hcnkp') }} name: "Build (amd_binary)" @@ -289,7 +289,7 @@ jobs: path: ci/tmp/build/programs/self-extracting/clickhouse build_arm_debug: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9kZWJ1Zyk=') }} name: "Build (arm_debug)" @@ -344,7 +344,7 @@ jobs: path: ci/tmp/*.deb build_arm_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9hc2FuX3Vic2FuKQ==') }} name: "Build (arm_asan_ubsan)" @@ -399,7 +399,7 @@ jobs: path: ci/tmp/*.deb build_arm_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV91YnNhbik=') }} name: "Build (arm_ubsan)" @@ -454,7 +454,7 @@ jobs: path: ci/tmp/*.deb build_arm_binary: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9iaW5hcnkp') }} name: "Build (arm_binary)" @@ -502,7 +502,7 @@ jobs: path: ci/tmp/build/programs/self-extracting/clickhouse build_amd_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF90c2FuKQ==') }} name: "Build (amd_tsan)" @@ -564,7 +564,7 @@ jobs: path: ci/tmp/*.deb build_amd_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-builder] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFtZF9tc2FuKQ==') }} name: "Build (amd_msan)" @@ -626,7 +626,7 @@ jobs: path: ci/tmp/*.deb build_arm_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV90c2FuKQ==') }} name: "Build (arm_tsan)" @@ -681,7 +681,7 @@ jobs: path: ci/tmp/*.deb build_arm_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] + runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] needs: [config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgKGFybV9tc2FuKQ==') }} name: "Build (arm_msan)" diff --git a/ci/defs/job_configs.py b/ci/defs/job_configs.py index f31a5bd1df86..6311483e3779 100644 --- a/ci/defs/job_configs.py +++ b/ci/defs/job_configs.py @@ -265,14 +265,14 @@ class JobConfigs: Job.ParamSet( parameter=BuildTypes.ARM_TIDY, provides=[], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) tidy_build_amd_jobs = common_build_job_config.parametrize( Job.ParamSet( parameter=BuildTypes.AMD_TIDY, provides=[], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) build_jobs = common_build_job_config.set_post_hooks( @@ -284,7 +284,7 @@ class JobConfigs: Job.ParamSet( parameter=BuildTypes.AMD_DEBUG, provides=[ArtifactNames.CH_AMD_DEBUG, ArtifactNames.DEB_AMD_DEBUG], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_ASAN_UBSAN, @@ -293,17 +293,17 @@ class JobConfigs: ArtifactNames.DEB_AMD_ASAN_UBSAN, ArtifactNames.UNITTEST_AMD_ASAN_UBSAN, ], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_BINARY, provides=[ArtifactNames.CH_AMD_BINARY], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_DEBUG, provides=[ArtifactNames.CH_ARM_DEBUG, ArtifactNames.DEB_ARM_DEBUG], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_ASAN_UBSAN, @@ -311,17 +311,17 @@ class JobConfigs: ArtifactNames.CH_ARM_ASAN_UBSAN, ArtifactNames.DEB_ARM_ASAN_UBSAN, ], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_UBSAN, provides=[ArtifactNames.CH_ARM_UBSAN, ArtifactNames.DEB_ARM_UBSAN], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_BINARY, provides=[ArtifactNames.CH_ARM_BINARY], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) + common_sanitizer_build_job_config.set_post_hooks( post_hooks=[ @@ -336,7 +336,7 @@ class JobConfigs: ArtifactNames.DEB_AMD_TSAN, ArtifactNames.UNITTEST_AMD_TSAN, ], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_MSAN, @@ -345,7 +345,7 @@ class JobConfigs: ArtifactNames.DEB_AMD_MSAN, ArtifactNames.UNITTEST_AMD_MSAN, ], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_TSAN, @@ -353,12 +353,12 @@ class JobConfigs: ArtifactNames.CH_ARM_TSAN, ArtifactNames.DEB_ARM_TSAN, ], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_MSAN, provides=[ArtifactNames.CH_ARM_MSAN, ArtifactNames.DEB_ARM_MSAN], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) coverage_build_jobs = common_build_job_config.parametrize( @@ -367,14 +367,14 @@ class JobConfigs: provides=[ ArtifactNames.CH_AMD_LLVM_COVERAGE_BUILD, ], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.PER_TEST_COVERAGE, provides=[ ArtifactNames.CH_AMD_PER_TEST_COVERAGE_BUILD, ], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) release_build_jobs = common_build_job_config.set_post_hooks( @@ -433,52 +433,52 @@ class JobConfigs: Job.ParamSet( parameter=BuildTypes.ARM_DARWIN, provides=[ArtifactNames.CH_ARM_DARWIN_BIN], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_V80COMPAT, provides=[ArtifactNames.CH_ARM_V80COMPAT], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_FREEBSD, provides=[ArtifactNames.CH_AMD_FREEBSD], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.PPC64LE, provides=[ArtifactNames.CH_PPC64LE], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_COMPAT, provides=[ArtifactNames.CH_AMD_COMPAT], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_MUSL, provides=[ArtifactNames.CH_AMD_MUSL], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.RISCV64, provides=[ArtifactNames.CH_RISCV64], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.S390X, provides=[ArtifactNames.CH_S390X], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.LOONGARCH64, provides=[ArtifactNames.CH_LOONGARCH64], - runs_on=RunnerLabels.BUILDER_AMD, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_FUZZERS, provides=[], - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, ), ) install_check_jobs = Job.Config( @@ -1477,7 +1477,7 @@ class JobConfigs: ), Job.ParamSet( parameter="aarch64", - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, provides=[ ArtifactNames.CLICKHOUSE_PGO_PROFILE_ARM, ArtifactNames.CLICKHOUSE_BOLT_PROFILE_ARM, @@ -1501,7 +1501,7 @@ class JobConfigs: ), Job.ParamSet( parameter="aarch64", - runs_on=RunnerLabels.ARM_LARGE, + runs_on=RunnerLabels.FUNC_TESTER_AMD, provides=[ArtifactNames.TOOLCHAIN_PGO_BOLT_ARM], ), ) From 5f9ff1c0044b8442c7c994b7246ab6cd64ca1503 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 09:06:19 -0400 Subject: [PATCH 06/13] fix S3 head-object parsing for missing optional metadata `aws s3api head-object` does not always include `Expiration`, so strict dataclass construction can fail and break submodule cache probing. Make `S3.Object` fields optional and ignore unknown keys to keep cache checks robust across buckets. Co-authored-by: Cursor --- ci/praktika/s3.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/ci/praktika/s3.py b/ci/praktika/s3.py index ea582b7b4c23..0cf1ac00cf59 100644 --- a/ci/praktika/s3.py +++ b/ci/praktika/s3.py @@ -4,7 +4,7 @@ import os import time from pathlib import Path -from typing import Dict +from typing import Dict, Optional from urllib.parse import quote import re @@ -95,14 +95,14 @@ def _retry_on_no_credentials(cls, func, retries=3, delay=5): @dataclasses.dataclass class Object: - AcceptRanges: str - Expiration: str - LastModified: str - ContentLength: int - ETag: str - ContentType: str - ServerSideEncryption: str - Metadata: Dict + AcceptRanges: Optional[str] = None + Expiration: Optional[str] = None + LastModified: Optional[str] = None + ContentLength: Optional[int] = None + ETag: Optional[str] = None + ContentType: Optional[str] = None + ServerSideEncryption: Optional[str] = None + Metadata: Dict = dataclasses.field(default_factory=dict) def has_tags(self, tags): meta = self.Metadata @@ -440,7 +440,10 @@ def head_object(cls, s3_path): if not output: return None else: - return cls.Object(**json.loads(output)) + data = json.loads(output) + object_fields = {field.name for field in dataclasses.fields(cls.Object)} + object_data = {k: v for k, v in data.items() if k in object_fields} + return cls.Object(**object_data) @classmethod def assert_read_access(cls, s3_path): From d750d1ddae65e5acad43704069b9c3d07733be83 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 10:00:17 -0400 Subject: [PATCH 07/13] revert to using workflow_config.custom_data for regression tags and version string --- .github/workflows/master.yml | 8 +-- .github/workflows/pull_request.yml | 8 +-- .../workflows/regression-reusable-suite.yml | 2 +- .github/workflows/regression.yml | 68 +++++++++---------- .github/workflows/release_builds.yml | 6 +- ci/jobs/scripts/workflow_hooks/filter_job.py | 8 ++- .../scripts/workflow_hooks/parse_ci_tags.py | 19 +++++- ci/jobs/scripts/workflow_hooks/version_log.py | 9 +++ ci/praktika/yaml_additional_templates.py | 8 +-- ci/settings/altinity_overrides.py | 1 - 10 files changed, 83 insertions(+), 54 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 276984a1fbf1..95f3c5eeefa0 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -4938,7 +4938,7 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-server - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} tag-suffix: ${{ matrix.suffix }} GrypeScanKeeper: needs: [config_workflow, docker_keeper_image] @@ -4947,11 +4947,11 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-keeper - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} RegressionTestsRelease: needs: [config_workflow, build_amd_binary, stateless_tests_amd_debug_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression')}} uses: ./.github/workflows/regression.yml secrets: inherit with: @@ -4963,7 +4963,7 @@ jobs: workflow_config: ${{ needs.config_workflow.outputs.data }} RegressionTestsAarch64: needs: [config_workflow, build_arm_binary, stateless_tests_arm_binary_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'aarch64')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'aarch64')}} uses: ./.github/workflows/regression.yml secrets: inherit with: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index dbf68e57fa10..3da92fc7df0d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -4733,7 +4733,7 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-server - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} tag-suffix: ${{ matrix.suffix }} GrypeScanKeeper: needs: [config_workflow, docker_keeper_image] @@ -4742,11 +4742,11 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-keeper - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} RegressionTestsRelease: needs: [config_workflow, build_amd_binary, stateless_tests_amd_debug_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression')}} uses: ./.github/workflows/regression.yml secrets: inherit with: @@ -4758,7 +4758,7 @@ jobs: workflow_config: ${{ needs.config_workflow.outputs.data }} RegressionTestsAarch64: needs: [config_workflow, build_arm_binary, stateless_tests_arm_binary_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'aarch64')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'aarch64')}} uses: ./.github/workflows/regression.yml secrets: inherit with: diff --git a/.github/workflows/regression-reusable-suite.yml b/.github/workflows/regression-reusable-suite.yml index cda6d8dd6591..37b0486b2d13 100644 --- a/.github/workflows/regression-reusable-suite.yml +++ b/.github/workflows/regression-reusable-suite.yml @@ -99,7 +99,7 @@ jobs: --local --collect-service-logs --output ${{ inputs.output_format }} - --attr project="${GITHUB_REPOSITORY}" project.id="${GITHUB_REPOSITORY_ID}" user.name="${GITHUB_ACTOR}" version="${{ fromJson(inputs.workflow_config).JOB_KV_DATA.version.string }}" package="$clickhouse_path" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.name="$REPORT_JOB_NAME" job.retry=$GITHUB_RUN_ATTEMPT job.url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" arch="$(uname -i)" + --attr project="${GITHUB_REPOSITORY}" project.id="${GITHUB_REPOSITORY_ID}" user.name="${GITHUB_ACTOR}" version="${{ fromJson(inputs.workflow_config).workflow_config.custom_data.version.string }}" package="$clickhouse_path" repository="https://github.com/Altinity/clickhouse-regression" commit.hash="$(git rev-parse HEAD)" job.name="$REPORT_JOB_NAME" job.retry=$GITHUB_RUN_ATTEMPT job.url="${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" arch="$(uname -i)" --cicd --log raw.log ${{ inputs.flags != 'none' && inputs.flags || ''}} diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 8d2dde66fa46..62b423a7777b 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -121,8 +121,8 @@ env: jobs: Common: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'common') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'common') strategy: fail-fast: false matrix: @@ -145,8 +145,8 @@ jobs: AggregateFunctions: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'aggregate_functions') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'aggregate_functions') strategy: fail-fast: false matrix: @@ -170,8 +170,8 @@ jobs: secrets: inherit Alter: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'alter') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'alter') strategy: fail-fast: false matrix: @@ -202,8 +202,8 @@ jobs: Benchmark: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'benchmark') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'benchmark') strategy: fail-fast: false matrix: @@ -228,8 +228,8 @@ jobs: ClickHouseKeeper: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'clickhouse_keeper') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'clickhouse_keeper') strategy: fail-fast: false matrix: @@ -256,8 +256,8 @@ jobs: Iceberg: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'iceberg') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'iceberg') strategy: fail-fast: false matrix: @@ -281,8 +281,8 @@ jobs: secrets: inherit LDAP: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'ldap') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'ldap') strategy: fail-fast: false matrix: @@ -305,10 +305,10 @@ jobs: OAuth: if: | - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.version.string, 'antalya') && + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.version.string, 'antalya') && ( - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'oauth') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'oauth') ) uses: ./.github/workflows/regression-reusable-suite.yml with: @@ -328,8 +328,8 @@ jobs: Parquet: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'parquet') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'parquet') uses: ./.github/workflows/regression-reusable-suite.yml with: ref: ${{ inputs.commit }} @@ -348,8 +348,8 @@ jobs: ParquetS3: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'parquet') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'parquet') strategy: fail-fast: false matrix: @@ -374,8 +374,8 @@ jobs: RBAC: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'rbac') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'rbac') strategy: fail-fast: false matrix: @@ -399,8 +399,8 @@ jobs: secrets: inherit SSLServer: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'ssl_server') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'ssl_server') strategy: fail-fast: false matrix: @@ -425,8 +425,8 @@ jobs: S3: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 's3') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 's3') strategy: fail-fast: false matrix: @@ -457,8 +457,8 @@ jobs: S3Export: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 's3_export') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 's3_export') strategy: fail-fast: false matrix: @@ -485,10 +485,10 @@ jobs: Swarms: if: | - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.version.string, 'antalya') && + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.version.string, 'antalya') && ( - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'swarms') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'swarms') ) uses: ./.github/workflows/regression-reusable-suite.yml with: @@ -508,8 +508,8 @@ jobs: TieredStorage: if: | - fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs[0] == null || - contains(fromJson(inputs.workflow_config).JOB_KV_DATA.ci_regression_jobs, 'tiered_storage') + fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs[0] == null || + contains(fromJson(inputs.workflow_config).workflow_config.custom_data.ci_regression_jobs, 'tiered_storage') strategy: fail-fast: false matrix: diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index 5c553066ca2e..d46c9d6a4258 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -1189,7 +1189,7 @@ jobs: finish_workflow: runs-on: [self-hosted, altinity-on-demand, altinity-style-checker] needs: [build_amd_asan_ubsan, build_amd_binary, build_amd_debug, build_amd_msan, build_amd_release, build_amd_tsan, build_arm_asan_ubsan, build_arm_binary, build_arm_debug, build_arm_msan, build_arm_release, build_arm_tsan, build_arm_ubsan, config_workflow, docker_keeper_image, docker_server_image, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, install_packages_amd_release, install_packages_arm_release, sign_release_amd_release, sign_release_arm_release, source_upload, stateless_tests_arm_binary_parallel, stateless_tests_arm_binary_sequential] - if: ${{ always() && needs.config_workflow.outputs.pipeline_status != '' }} + if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }} name: "Finish Workflow" outputs: data: ${{ steps.run.outputs.DATA }} @@ -1245,7 +1245,7 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-server - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} tag-suffix: ${{ matrix.suffix }} GrypeScanKeeper: needs: [config_workflow, docker_keeper_image] @@ -1254,7 +1254,7 @@ jobs: secrets: inherit with: docker_image: altinityinfra/clickhouse-keeper - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} FinishCIReport: if: ${{ !cancelled() && needs.config_workflow.outputs.pipeline_status != '' }} diff --git a/ci/jobs/scripts/workflow_hooks/filter_job.py b/ci/jobs/scripts/workflow_hooks/filter_job.py index bed6f32b4d81..f9d4c75e3086 100644 --- a/ci/jobs/scripts/workflow_hooks/filter_job.py +++ b/ci/jobs/scripts/workflow_hooks/filter_job.py @@ -8,6 +8,7 @@ ) from ci.jobs.scripts.workflow_hooks.pr_labels_and_category import Labels from ci.praktika.info import Info +from ci.praktika.runtime import RunConfig def only_docs(changed_files): @@ -254,7 +255,12 @@ def should_skip_job(job_name): ): return True, "Skipped, not labeled with 'pr-performance'" - ci_exclude_tags = _info_cache.get_kv_data("ci_exclude_tags") or [] + # The CI tags live in workflow_config.custom_data (see parse_ci_tags.py), + # which runs as a pre-hook, so the value is present by the time this runs. + ci_exclude_tags = ( + RunConfig.from_fs(_info_cache.workflow_name).custom_data.get("ci_exclude_tags") + or [] + ) for tag in ci_exclude_tags: if tag in job_name.lower(): return True, f"Skipped, job name includes excluded tag '{tag}'" diff --git a/ci/jobs/scripts/workflow_hooks/parse_ci_tags.py b/ci/jobs/scripts/workflow_hooks/parse_ci_tags.py index c28f59b552ee..ddbba31bbee4 100644 --- a/ci/jobs/scripts/workflow_hooks/parse_ci_tags.py +++ b/ci/jobs/scripts/workflow_hooks/parse_ci_tags.py @@ -1,6 +1,7 @@ import re from ci.praktika.info import Info +from ci.praktika.runtime import RunConfig def get_ci_tags(pr_body, tag_prefix): @@ -14,5 +15,19 @@ def get_ci_tags(pr_body, tag_prefix): if __name__ == "__main__": info = Info() - info.store_kv_data("ci_exclude_tags", get_ci_tags(info.pr_body, "ci_exclude")) - info.store_kv_data("ci_regression_jobs", get_ci_tags(info.pr_body, "ci_regression")) + ci_exclude_tags = get_ci_tags(info.pr_body, "ci_exclude") + ci_regression_jobs = get_ci_tags(info.pr_body, "ci_regression") + + # Store the tags in workflow_config.custom_data, which is emitted as plain + # JSON in the config job's `data` output. This is the single source of truth + # for the tags: the GitHub Actions `if:` expressions that gate the regression + # jobs read `custom_data.ci_(exclude_tags|regression_jobs)`, and the config + # job's own hooks (filter_job.py, native_jobs.py) read custom_data too. + # JOB_KV_DATA is not usable here because it is base64-encoded in that output + # (to keep user-authored strings from matching a secret pattern and + # suppressing the whole output), so `fromJson(...).JOB_KV_DATA` cannot be + # dereferenced from a workflow. + workflow_config = RunConfig.from_fs(info.workflow_name) + workflow_config.custom_data["ci_exclude_tags"] = ci_exclude_tags + workflow_config.custom_data["ci_regression_jobs"] = ci_regression_jobs + workflow_config.dump() diff --git a/ci/jobs/scripts/workflow_hooks/version_log.py b/ci/jobs/scripts/workflow_hooks/version_log.py index b173c60ed954..1d3855a5874d 100644 --- a/ci/jobs/scripts/workflow_hooks/version_log.py +++ b/ci/jobs/scripts/workflow_hooks/version_log.py @@ -1,6 +1,7 @@ from datetime import datetime from praktika.info import Info +from praktika.runtime import RunConfig from praktika.utils import Shell from ci.jobs.scripts.cidb_cluster import CIDBCluster @@ -30,6 +31,14 @@ def _add_build_to_version_history(): # stores actual version data in pipline storage, to be used by jobs that need it CHVersion.store_version_data_in_ci_pipeline(version) + # Also mirror it into workflow_config.custom_data so GitHub Actions `if:` + # expressions can read `custom_data.version.string` as plain JSON - the + # config job's `data` output emits JOB_KV_DATA base64-encoded, so + # `fromJson(...).JOB_KV_DATA.version` is not dereferenceable from a workflow. + workflow_config = RunConfig.from_fs(Info().workflow_name) + workflow_config.custom_data["version"] = version + workflow_config.dump() + if __name__ == "__main__": _add_build_to_version_history() diff --git a/ci/praktika/yaml_additional_templates.py b/ci/praktika/yaml_additional_templates.py index bf4c6c8a4e25..ac694f442a16 100644 --- a/ci/praktika/yaml_additional_templates.py +++ b/ci/praktika/yaml_additional_templates.py @@ -49,7 +49,7 @@ class AltinityWorkflowTemplates: secrets: inherit with: docker_image: altinityinfra/clickhouse-server - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} tag-suffix: ${{ matrix.suffix }} GrypeScanKeeper: needs: [config_workflow, docker_keeper_image] @@ -58,12 +58,12 @@ class AltinityWorkflowTemplates: secrets: inherit with: docker_image: altinityinfra/clickhouse-keeper - version: ${{ fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.version.string }} + version: ${{ fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.version.string }} """, "Regression": r""" RegressionTestsRelease: needs: [config_workflow, build_amd_binary, stateless_tests_amd_debug_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression')}} uses: ./.github/workflows/regression.yml secrets: inherit with: @@ -75,7 +75,7 @@ class AltinityWorkflowTemplates: workflow_config: ${{ needs.config_workflow.outputs.data }} RegressionTestsAarch64: needs: [config_workflow, build_arm_binary, stateless_tests_arm_binary_parallel] - if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).JOB_KV_DATA.ci_exclude_tags, 'aarch64')}} + if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'regression') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.custom_data.ci_exclude_tags, 'aarch64')}} uses: ./.github/workflows/regression.yml secrets: inherit with: diff --git a/ci/settings/altinity_overrides.py b/ci/settings/altinity_overrides.py index 6364be5b5cf7..dc9e94f04f8a 100644 --- a/ci/settings/altinity_overrides.py +++ b/ci/settings/altinity_overrides.py @@ -70,7 +70,6 @@ class RunnerLabels: "nightly_upload.py", "optimize_clickhouse.py", "pr_version_info.py", - "release_builds.py", "VectorSearchStress.py", ] From 437faf657492d84d39bcc097b365d0011cb0c79a Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 10:42:02 -0400 Subject: [PATCH 08/13] Keep arm builds when skipping arm tests The aarch64/arm CI exclude tags are meant to skip arm *tests*, but the substring match in `should_skip_job` also skipped the arm release build and its docker jobs, which are release artifacts. Add an allowlist (`Build (arm_release)`, `Dockers Build (arm)`, `Dockers Build (multiplatform manifest)`) via `is_ci_excluded_by_tag` so those jobs keep running while arm tests are still excluded. Also port the accompanying changes: switch `MasterCI` from a push trigger to manual dispatch with a `no_cache` input (stop running master on merge), add `input_type` support for dispatch inputs, and update the PR template to rename "All with Aarch64" to "Aarch64 tests" and exclude arm tests by default. Ported from https://github.com/Altinity/ClickHouse/pull/1914 Co-authored-by: Cursor --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/master.yml | 466 ++++++++++++++----- .github/workflows/release_builds.yml | 2 + ci/jobs/scripts/workflow_hooks/filter_job.py | 20 +- ci/praktika/workflow.py | 1 + ci/praktika/yaml_generator.py | 4 + ci/workflows/master.py | 12 +- 7 files changed, 385 insertions(+), 122 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 03911cfa92a2..f905bf7b7812 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -33,12 +33,12 @@ Related: https://github.com/ClickHouse/ClickHouse/pull/NNNNN - [ ] Stateless tests - [ ] Stateful tests - [ ] Performance tests +- [x] Aarch64 tests - [ ] All with ASAN - [x] All with TSAN - [x] All with MSAN - [x] All with UBSAN - [x] All with Coverage -- [ ] All with Aarch64 - [ ] All Regression - [ ] Disable CI Cache diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 95f3c5eeefa0..b19b5ce06623 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -10,8 +10,6 @@ on: required: false type: boolean default: false - push: - branches: ['antalya', 'releases/*', 'antalya-*', 'stable-*'] env: # Force the stdout and stderr streams to be unbuffered @@ -78,7 +76,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -120,7 +120,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -162,7 +164,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -204,7 +208,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -246,7 +252,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -288,7 +296,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -330,7 +340,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -372,7 +384,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -414,7 +428,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -456,7 +472,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -498,7 +516,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -540,7 +560,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -582,7 +604,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -624,7 +648,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -666,7 +692,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -708,7 +736,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -750,7 +780,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -792,7 +824,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -834,7 +868,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -876,7 +912,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -918,7 +956,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -960,7 +1000,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1002,7 +1044,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1044,7 +1088,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1086,7 +1132,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1128,7 +1176,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1170,7 +1220,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1212,7 +1264,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1254,7 +1308,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1296,7 +1352,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1338,7 +1396,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1380,7 +1440,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1422,7 +1484,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1464,7 +1528,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1506,7 +1572,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1548,7 +1616,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1590,7 +1660,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1632,7 +1704,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1674,7 +1748,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1716,7 +1792,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1758,7 +1836,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1800,7 +1880,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1842,7 +1924,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1884,7 +1968,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1926,7 +2012,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -1968,7 +2056,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2010,7 +2100,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2052,7 +2144,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2094,7 +2188,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2136,7 +2232,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2178,7 +2276,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2220,7 +2320,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2262,7 +2364,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2304,7 +2408,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2346,7 +2452,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2388,7 +2496,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2430,7 +2540,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2472,7 +2584,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2514,7 +2628,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2556,7 +2672,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2598,7 +2716,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2640,7 +2760,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2682,7 +2804,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2724,7 +2848,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2766,7 +2892,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2808,7 +2936,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2850,7 +2980,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2892,7 +3024,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2934,7 +3068,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -2976,7 +3112,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3018,7 +3156,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3060,7 +3200,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3102,7 +3244,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3144,7 +3288,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3186,7 +3332,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3228,7 +3376,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3270,7 +3420,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3312,7 +3464,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3354,7 +3508,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3396,7 +3552,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3438,7 +3596,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3480,7 +3640,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3522,7 +3684,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3564,7 +3728,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3606,7 +3772,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3648,7 +3816,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3690,7 +3860,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3732,7 +3904,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3774,7 +3948,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3816,7 +3992,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3858,7 +4036,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3900,7 +4080,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3942,7 +4124,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -3984,7 +4168,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4026,7 +4212,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4068,7 +4256,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4110,7 +4300,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4152,7 +4344,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4194,7 +4388,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4236,7 +4432,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4278,7 +4476,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4320,7 +4520,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4362,7 +4564,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4404,7 +4608,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4446,7 +4652,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4488,7 +4696,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4530,7 +4740,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4572,7 +4784,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4614,7 +4828,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4656,7 +4872,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4698,7 +4916,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4740,7 +4960,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4782,7 +5004,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4824,7 +5048,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4866,7 +5092,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF @@ -4908,7 +5136,9 @@ jobs: mkdir -p ./ci/tmp cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF' export PYTHONPATH=./ci:.: - + cat > ./ci/tmp/workflow_inputs.json << 'EOF' + ${{ toJson(github.event.inputs) }} + EOF cat > ./ci/tmp/workflow_job.json << 'EOF' ${{ toJson(job) }} EOF diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index d46c9d6a4258..862dbf15756b 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -1,11 +1,13 @@ # generated by praktika name: Release Builds + on: workflow_dispatch: inputs: env: + # Force the stdout and stderr streams to be unbuffered PYTHONUNBUFFERED: 1 GH_TOKEN: ${{ github.token }} CHECKOUT_REF: "" diff --git a/ci/jobs/scripts/workflow_hooks/filter_job.py b/ci/jobs/scripts/workflow_hooks/filter_job.py index f9d4c75e3086..e760c6d59fbb 100644 --- a/ci/jobs/scripts/workflow_hooks/filter_job.py +++ b/ci/jobs/scripts/workflow_hooks/filter_job.py @@ -9,6 +9,7 @@ from ci.jobs.scripts.workflow_hooks.pr_labels_and_category import Labels from ci.praktika.info import Info from ci.praktika.runtime import RunConfig +from ci.praktika.settings import Settings def only_docs(changed_files): @@ -63,6 +64,23 @@ def only_docs(changed_files): "Stateless tests (amd_binary, flaky check)", ] +# The aarch64/arm exclude tags are meant to skip arm *tests*, but the arm release +# build and its docker jobs are release artifacts, not tests, so they must keep +# running even when arm tests are excluded. +DOCKER_REQUIRED_ARM_JOBS = { + "Build (arm_release)", + Settings.DOCKER_BUILD_ARM_LINUX_JOB_NAME, + Settings.DOCKER_BUILD_MANIFEST_JOB_NAME, +} + + +def is_ci_excluded_by_tag(job_name, tag): + if tag in ("aarch64", "arm") and job_name in DOCKER_REQUIRED_ARM_JOBS: + return False + + return tag in job_name.lower() + + # Must match ci.workflows.pull_request.KEEPER_STRESS_PR_NAME KEEPER_STRESS_PR_NAME = "Keeper Stress Tests (PR)" @@ -262,7 +280,7 @@ def should_skip_job(job_name): or [] ) for tag in ci_exclude_tags: - if tag in job_name.lower(): + if is_ci_excluded_by_tag(job_name, tag): return True, f"Skipped, job name includes excluded tag '{tag}'" # If only CI scripts changed (no product code), run a minimal set of tests diff --git a/ci/praktika/workflow.py b/ci/praktika/workflow.py index 9d6a46cba5cf..52cc331fae1a 100644 --- a/ci/praktika/workflow.py +++ b/ci/praktika/workflow.py @@ -144,4 +144,5 @@ class InputConfig: description: str is_required: bool default_value: str + input_type: str options: Optional[List] = None diff --git a/ci/praktika/yaml_generator.py b/ci/praktika/yaml_generator.py index 3eaa4a56aa08..5e138efc8459 100644 --- a/ci/praktika/yaml_generator.py +++ b/ci/praktika/yaml_generator.py @@ -102,11 +102,13 @@ class Templates: # generated by praktika name: {NAME} + on: workflow_dispatch: inputs:{DISPATCH_INPUTS} env: + # Force the stdout and stderr streams to be unbuffered PYTHONUNBUFFERED: 1 {ENV_CHECKOUT_REFERENCE} {ENV_SECRETS} @@ -120,6 +122,7 @@ class Templates: {NAME}: description: {DESCRIPTION} required: {IS_REQUIRED} + type: {INPUT_TYPE} default: {DEFAULT_VALUE}\ """ @@ -437,6 +440,7 @@ def _all_needs(job_name: str) -> set: DESCRIPTION=input_item.description, IS_REQUIRED="true" if input_item.is_required else "false", DEFAULT_VALUE=input_item.default_value or "''", + INPUT_TYPE=input_item.input_type, ) else: dispatch_inputs += ( diff --git a/ci/workflows/master.py b/ci/workflows/master.py index a896dcac71de..6e414f2c17e7 100644 --- a/ci/workflows/master.py +++ b/ci/workflows/master.py @@ -22,8 +22,16 @@ workflow = Workflow.Config( name="MasterCI", - event=Workflow.Event.PUSH, - branches=[BASE_BRANCH, "releases/*", "antalya-*", "stable-*"], + event=Workflow.Event.DISPATCH, + inputs=[ + Workflow.Config.InputConfig( + name="no_cache", + description="Run without cache", + is_required=False, + input_type="boolean", + default_value="false", + ), + ], jobs=[ # *JobConfigs.tidy_build_arm_jobs, *JobConfigs.build_jobs, From 470bc3984bc0d2ccee25f4589da133a2e27c2c3f Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Mon, 15 Jun 2026 15:21:53 -0400 Subject: [PATCH 09/13] patch 02981_insert_select_resize_to_max_insert_threads for less memory --- .../02981_insert_select_resize_to_max_insert_threads.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/02981_insert_select_resize_to_max_insert_threads.sh b/tests/queries/0_stateless/02981_insert_select_resize_to_max_insert_threads.sh index ba39782b0488..60eee7b557d3 100755 --- a/tests/queries/0_stateless/02981_insert_select_resize_to_max_insert_threads.sh +++ b/tests/queries/0_stateless/02981_insert_select_resize_to_max_insert_threads.sh @@ -35,21 +35,21 @@ ${CLICKHOUSE_CLIENT} -q """ max_insert_threads=8 echo "inserting into a remote table from local with concurrency equal to max_insert_threads" -${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" -q """ +${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" --max_insert_threads_min_free_memory_per_thread 0 -q """ EXPLAIN PIPELINE INSERT INTO t3_dist SELECT * FROM t1_local; """ | grep -v EmptySink | grep -c Sink echo "inserting into a remote table from remote with concurrency max_insert_threads" -${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" --parallel_distributed_insert_select 0 -q """ +${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" --max_insert_threads_min_free_memory_per_thread 0 --parallel_distributed_insert_select 0 -q """ EXPLAIN PIPELINE INSERT INTO t3_dist SELECT * FROM t3_dist; """ | grep -v EmptySink | grep -c Sink echo "inserting into a remote table from remote (reading with parallel replicas) with concurrency max_insert_threads" -${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" --enable_parallel_replicas 2 --cluster_for_parallel_replicas 'parallel_replicas' --max_parallel_replicas 3 -q """ +${CLICKHOUSE_CLIENT} --max_insert_threads "$max_insert_threads" --max_insert_threads_min_free_memory_per_thread 0 --enable_parallel_replicas 2 --cluster_for_parallel_replicas 'parallel_replicas' --max_parallel_replicas 3 -q """ EXPLAIN PIPELINE INSERT INTO t3_dist SELECT * FROM t4_pr; From d476853a62025a8d2faecc8658a45435b1d48e8d Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 14:21:35 -0400 Subject: [PATCH 10/13] no-random-settings for 00139_like --- tests/queries/0_stateless/00139_like.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/00139_like.sql b/tests/queries/0_stateless/00139_like.sql index e56ccb377841..edf246ee33ae 100644 --- a/tests/queries/0_stateless/00139_like.sql +++ b/tests/queries/0_stateless/00139_like.sql @@ -1,4 +1,4 @@ --- Tags: stateful +-- Tags: stateful, no-random-settings /* Note that queries are written as the user doesn't really understand that the symbol _ has special meaning in LIKE pattern. */ SELECT count() FROM test.hits WHERE URL LIKE '%/avtomobili_s_probegom/_%__%__%__%'; SELECT count() FROM test.hits WHERE URL LIKE '/avtomobili_s_probegom/_%__%__%__%'; From 69ccf975773d993892faeb5ba9ae365c18a28ea8 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 14:28:42 -0400 Subject: [PATCH 11/13] Add no-parallel to flaky tests --- tests/queries/0_stateless/00038_uniq_state_merge2.sql | 2 +- .../00446_clear_column_in_partition_concurrent_zookeeper.sh | 2 +- .../queries/0_stateless/02370_lost_part_intersecting_merges.sh | 2 +- tests/queries/0_stateless/04033_tpc_ds_q05.sh | 2 +- tests/queries/0_stateless/04033_tpc_ds_q23.sh | 2 +- tests/queries/0_stateless/04033_tpc_ds_q61.sh | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/queries/0_stateless/00038_uniq_state_merge2.sql b/tests/queries/0_stateless/00038_uniq_state_merge2.sql index fb9bf2ace4d5..1a2339936736 100644 --- a/tests/queries/0_stateless/00038_uniq_state_merge2.sql +++ b/tests/queries/0_stateless/00038_uniq_state_merge2.sql @@ -1,4 +1,4 @@ --- Tags: stateful +-- Tags: stateful, no-parallel SET max_bytes_before_external_group_by = '1G'; SET max_bytes_ratio_before_external_group_by = 0; SELECT topLevelDomain(concat('http://', k)) AS tld, sum(u) AS u, uniqMerge(us) AS us FROM (SELECT domain(URL) AS k, uniq(UserID) AS u, uniqState(UserID) AS us FROM test.hits GROUP BY k) GROUP BY tld ORDER BY u DESC, tld ASC LIMIT 100 diff --git a/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh b/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh index 8b414266c2c0..d6aee05966c9 100755 --- a/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh +++ b/tests/queries/0_stateless/00446_clear_column_in_partition_concurrent_zookeeper.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: long, zookeeper, no-replicated-database, no-shared-merge-tree +# Tags: long, zookeeper, no-replicated-database, no-shared-merge-tree, no-parallel # Tag long: concurrent CLEAR COLUMN + INSERT race test exceeds 180s flaky-check # budget under contention; flaky-check enforces TEST_MAX_RUN_TIME_IN_SECONDS # only for tests without the `long` tag (see tests/clickhouse-test). diff --git a/tests/queries/0_stateless/02370_lost_part_intersecting_merges.sh b/tests/queries/0_stateless/02370_lost_part_intersecting_merges.sh index de61f5cc23ec..dff5b5f5eccf 100755 --- a/tests/queries/0_stateless/02370_lost_part_intersecting_merges.sh +++ b/tests/queries/0_stateless/02370_lost_part_intersecting_merges.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: long, zookeeper, no-shared-merge-tree +# Tags: long, zookeeper, no-shared-merge-tree, no-parallel # no-shared-merge-tree: depend on local fs (remove parts) CURDIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) diff --git a/tests/queries/0_stateless/04033_tpc_ds_q05.sh b/tests/queries/0_stateless/04033_tpc_ds_q05.sh index 4512e6ad5aa6..a301c06185cf 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q05.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q05.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode. diff --git a/tests/queries/0_stateless/04033_tpc_ds_q23.sh b/tests/queries/0_stateless/04033_tpc_ds_q23.sh index f2d0729f4c2b..4cb3caf8c493 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q23.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q23.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode. diff --git a/tests/queries/0_stateless/04033_tpc_ds_q61.sh b/tests/queries/0_stateless/04033_tpc_ds_q61.sh index 14876358e56b..bd8b373aa1b0 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q61.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q61.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode. From 9e70ea93612c1d0ffee84fa3e04a8f06dca73bc6 Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 19:03:14 -0400 Subject: [PATCH 12/13] add no-random-settings to flaky tests --- tests/queries/0_stateless/00165_jit_aggregate_functions.sql | 2 +- tests/queries/0_stateless/03800_autopr_reuse_index_analysis.sql | 2 +- .../03927_autopr_input_bytes_estimation_prewhere_filter.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/00165_jit_aggregate_functions.sql b/tests/queries/0_stateless/00165_jit_aggregate_functions.sql index 6efee311f19f..972572c0003b 100644 --- a/tests/queries/0_stateless/00165_jit_aggregate_functions.sql +++ b/tests/queries/0_stateless/00165_jit_aggregate_functions.sql @@ -1,4 +1,4 @@ --- Tags: stateful +-- Tags: stateful, no-random-settings SET min_count_to_compile_aggregate_expression = 0; -- The test uses many aggregations. A low max_bytes_before_external_group_by value will lead to high disk usage -- which in CI leads to timeouts diff --git a/tests/queries/0_stateless/03800_autopr_reuse_index_analysis.sql b/tests/queries/0_stateless/03800_autopr_reuse_index_analysis.sql index 8b194a314584..a4ef78048734 100644 --- a/tests/queries/0_stateless/03800_autopr_reuse_index_analysis.sql +++ b/tests/queries/0_stateless/03800_autopr_reuse_index_analysis.sql @@ -1,4 +1,4 @@ --- Tags: stateful, long +-- Tags: stateful, long, no-random-settings SET enable_parallel_replicas=1, automatic_parallel_replicas_mode=1, parallel_replicas_local_plan=1, parallel_replicas_index_analysis_only_on_coordinator=1, parallel_replicas_for_non_replicated_merge_tree=1, max_parallel_replicas=3, cluster_for_parallel_replicas='parallel_replicas'; diff --git a/tests/queries/0_stateless/03927_autopr_input_bytes_estimation_prewhere_filter.sql b/tests/queries/0_stateless/03927_autopr_input_bytes_estimation_prewhere_filter.sql index 4b2249eebc08..12159c755a9b 100644 --- a/tests/queries/0_stateless/03927_autopr_input_bytes_estimation_prewhere_filter.sql +++ b/tests/queries/0_stateless/03927_autopr_input_bytes_estimation_prewhere_filter.sql @@ -1,4 +1,4 @@ --- Tags: stateful, long +-- Tags: stateful, long, no-random-settings SET use_uncompressed_cache=0; From 1e5044c461162a6b9401fca8693f3081f312681f Mon Sep 17 00:00:00 2001 From: strtgbb <146047128+strtgbb@users.noreply.github.com> Date: Tue, 7 Jul 2026 19:07:50 -0400 Subject: [PATCH 13/13] use builders for cpu-bound testers, trying to fix flaky tpc dc tests --- .github/workflows/master.yml | 22 ++++++++-------- .github/workflows/pull_request.yml | 26 +++++++++---------- .github/workflows/pull_request_community.yml | 24 ++++++++--------- ci/defs/defs.py | 4 +-- tests/queries/0_stateless/04033_tpc_ds_q05.sh | 2 +- tests/queries/0_stateless/04033_tpc_ds_q23.sh | 2 +- tests/queries/0_stateless/04033_tpc_ds_q61.sh | 2 +- 7 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 3f3798b474e3..4800d99d0cbb 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -842,7 +842,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Build (arm_release)' --workflow "MasterCI" --ci --timestamp unit_tests_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbik=') }} name: "Unit tests (asan_ubsan)" @@ -886,7 +886,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan)' --workflow "MasterCI" --ci --timestamp unit_tests_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbik=') }} name: "Unit tests (tsan)" @@ -930,7 +930,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan)' --workflow "MasterCI" --ci --timestamp unit_tests_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbik=') }} name: "Unit tests (msan)" @@ -974,7 +974,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (msan)' --workflow "MasterCI" --ci --timestamp unit_tests_asan_ubsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (asan_ubsan, function_prop_fuzzer)" @@ -1018,7 +1018,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan, function_prop_fuzzer)' --workflow "MasterCI" --ci --timestamp unit_tests_tsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (tsan, function_prop_fuzzer)" @@ -1062,7 +1062,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan, function_prop_fuzzer)' --workflow "MasterCI" --ci --timestamp unit_tests_msan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (msan, function_prop_fuzzer)" @@ -1502,7 +1502,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Compatibility check (arm_release)' --workflow "MasterCI" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)" @@ -1546,7 +1546,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)' --workflow "MasterCI" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 2/2)" @@ -1678,7 +1678,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, db disk, distributed plan, sequential, 2/2)' --workflow "MasterCI" --ci --timestamp stateless_tests_amd_debug_parallel: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_debug, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfZGVidWcsIHBhcmFsbGVsKQ==') }} name: "Stateless tests (amd_debug, parallel)" @@ -1766,7 +1766,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_debug, sequential)' --workflow "MasterCI" --ci --timestamp stateless_tests_amd_tsan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_tsan, parallel, 1/2)" @@ -1810,7 +1810,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_tsan, parallel, 1/2)' --workflow "MasterCI" --ci --timestamp stateless_tests_amd_tsan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_tsan, parallel, 2/2)" diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b20f28172ab1..827d7ae53ddb 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -223,7 +223,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Dockers Build (multiplatform manifest)' --workflow "PR" --ci --timestamp fast_test: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'RmFzdCB0ZXN0') }} name: "Fast test" @@ -1105,7 +1105,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'AST fuzzer (amd_debug, targeted, old_compatibility)' --workflow "PR" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)" @@ -1147,7 +1147,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)' --workflow "PR" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 2/2)" @@ -1273,7 +1273,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, db disk, distributed plan, sequential, 2/2)' --workflow "PR" --ci --timestamp stateless_tests_amd_debug_parallel: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_debug, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfZGVidWcsIHBhcmFsbGVsKQ==') }} name: "Stateless tests (amd_debug, parallel)" @@ -1357,7 +1357,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_debug, sequential)' --workflow "PR" --ci --timestamp stateless_tests_amd_tsan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_tsan, parallel, 1/2)" @@ -1399,7 +1399,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_tsan, parallel, 1/2)' --workflow "PR" --ci --timestamp stateless_tests_amd_tsan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_tsan, parallel, 2/2)" @@ -3121,7 +3121,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Integration tests (amd_msan, 6/6)' --workflow "PR" --ci --timestamp unit_tests_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbik=') }} name: "Unit tests (asan_ubsan)" @@ -3163,7 +3163,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan)' --workflow "PR" --ci --timestamp unit_tests_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbik=') }} name: "Unit tests (tsan)" @@ -3205,7 +3205,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan)' --workflow "PR" --ci --timestamp unit_tests_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbik=') }} name: "Unit tests (msan)" @@ -3247,7 +3247,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (msan)' --workflow "PR" --ci --timestamp unit_tests_asan_ubsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (asan_ubsan, function_prop_fuzzer)" @@ -3289,7 +3289,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan, function_prop_fuzzer)' --workflow "PR" --ci --timestamp unit_tests_tsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (tsan, function_prop_fuzzer)" @@ -3331,7 +3331,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan, function_prop_fuzzer)' --workflow "PR" --ci --timestamp unit_tests_msan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, ci_tests, config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (msan, function_prop_fuzzer)" @@ -4549,7 +4549,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Keeper Stress Tests (PR)' --workflow "PR" --ci --timestamp build_toolchain_pgo_bolt_amd64: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'QnVpbGQgVG9vbGNoYWluIChQR08sIEJPTFQpIChhbWQ2NCk=') }} name: "Build Toolchain (PGO, BOLT) (amd64)" diff --git a/.github/workflows/pull_request_community.yml b/.github/workflows/pull_request_community.yml index 527b66081678..5e85fe14962b 100644 --- a/.github/workflows/pull_request_community.yml +++ b/.github/workflows/pull_request_community.yml @@ -82,7 +82,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Config Workflow' --workflow "Community PR" --ci --timestamp fast_test: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'RmFzdCB0ZXN0') }} name: "Fast test" @@ -922,7 +922,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Quick functional tests' --workflow "Community PR" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, build_amd_debug, build_arm_binary, config_workflow, fast_test, stateless_tests_amd_debug_parallel, stateless_tests_arm_binary_parallel] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)" @@ -970,7 +970,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, distributed plan, parallel, 1/2)' --workflow "Community PR" --ci --timestamp stateless_tests_amd_asan_ubsan_distributed_plan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, build_amd_debug, build_arm_binary, config_workflow, fast_test, stateless_tests_amd_debug_parallel, stateless_tests_arm_binary_parallel] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfYXNhbl91YnNhbiwgZGlzdHJpYnV0ZWQgcGxhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_asan_ubsan, distributed plan, parallel, 2/2)" @@ -1114,7 +1114,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_asan_ubsan, db disk, distributed plan, sequential, 2/2)' --workflow "Community PR" --ci --timestamp stateless_tests_amd_debug_parallel: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_debug, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfZGVidWcsIHBhcmFsbGVsKQ==') }} name: "Stateless tests (amd_debug, parallel)" @@ -1210,7 +1210,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_debug, sequential)' --workflow "Community PR" --ci --timestamp stateless_tests_amd_tsan_parallel_1_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_debug, build_amd_tsan, build_arm_binary, config_workflow, fast_test, stateless_tests_amd_debug_parallel, stateless_tests_arm_binary_parallel] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDEvMik=') }} name: "Stateless tests (amd_tsan, parallel, 1/2)" @@ -1258,7 +1258,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Stateless tests (amd_tsan, parallel, 1/2)' --workflow "Community PR" --ci --timestamp stateless_tests_amd_tsan_parallel_2_2: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_debug, build_amd_tsan, build_arm_binary, config_workflow, fast_test, stateless_tests_amd_debug_parallel, stateless_tests_arm_binary_parallel] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'U3RhdGVsZXNzIHRlc3RzIChhbWRfdHNhbiwgcGFyYWxsZWwsIDIvMik=') }} name: "Stateless tests (amd_tsan, parallel, 2/2)" @@ -3130,7 +3130,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Integration tests (amd_msan, 6/6)' --workflow "Community PR" --ci --timestamp unit_tests_asan_ubsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbik=') }} name: "Unit tests (asan_ubsan)" @@ -3178,7 +3178,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan)' --workflow "Community PR" --ci --timestamp unit_tests_tsan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbik=') }} name: "Unit tests (tsan)" @@ -3226,7 +3226,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan)' --workflow "Community PR" --ci --timestamp unit_tests_msan: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbik=') }} name: "Unit tests (msan)" @@ -3274,7 +3274,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (msan)' --workflow "Community PR" --ci --timestamp unit_tests_asan_ubsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_asan_ubsan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAoYXNhbl91YnNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (asan_ubsan, function_prop_fuzzer)" @@ -3322,7 +3322,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (asan_ubsan, function_prop_fuzzer)' --workflow "Community PR" --ci --timestamp unit_tests_tsan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_tsan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAodHNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (tsan, function_prop_fuzzer)" @@ -3370,7 +3370,7 @@ jobs: PYTHONUNBUFFERED=1 python3 -m praktika run 'Unit tests (tsan, function_prop_fuzzer)' --workflow "Community PR" --ci --timestamp unit_tests_msan_function_prop_fuzzer: - runs-on: [self-hosted, altinity-on-demand, altinity-func-tester] + runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [build_amd_msan, config_workflow, fast_test] if: ${{ !cancelled() && !contains(needs.*.outputs.pipeline_status, 'failure') && !contains(needs.*.outputs.pipeline_status, 'undefined') && !contains(fromJson(needs.config_workflow.outputs.data).workflow_config.cache_success_base64, 'VW5pdCB0ZXN0cyAobXNhbiwgZnVuY3Rpb25fcHJvcF9mdXp6ZXIp') }} name: "Unit tests (msan, function_prop_fuzzer)" diff --git a/ci/defs/defs.py b/ci/defs/defs.py index 489439355853..6ebc34260aff 100644 --- a/ci/defs/defs.py +++ b/ci/defs/defs.py @@ -24,12 +24,12 @@ class RunnerLabels: "altinity-on-demand", "altinity-func-tester-aarch64", ] - AMD_LARGE = ["self-hosted", "altinity-on-demand", "altinity-func-tester"] + AMD_LARGE = ["self-hosted", "altinity-on-demand", "altinity-builder"] ARM_LARGE = ["self-hosted", "altinity-on-demand", "altinity-func-tester-aarch64"] ARM_LARGE_STORAGE = ["self-hosted", "altinity-on-demand", "altinity-func-tester-aarch64"] AMD_MEDIUM = ["self-hosted", "altinity-on-demand", "altinity-func-tester"] ARM_MEDIUM = ["self-hosted", "altinity-on-demand", "altinity-func-tester-aarch64"] - AMD_MEDIUM_CPU = ["self-hosted", "altinity-on-demand", "altinity-func-tester"] + AMD_MEDIUM_CPU = ["self-hosted", "altinity-on-demand", "altinity-builder"] ARM_MEDIUM_CPU = [ "self-hosted", "altinity-on-demand", diff --git a/tests/queries/0_stateless/04033_tpc_ds_q05.sh b/tests/queries/0_stateless/04033_tpc_ds_q05.sh index a301c06185cf..4512e6ad5aa6 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q05.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q05.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode. diff --git a/tests/queries/0_stateless/04033_tpc_ds_q23.sh b/tests/queries/0_stateless/04033_tpc_ds_q23.sh index 4cb3caf8c493..f2d0729f4c2b 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q23.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q23.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode. diff --git a/tests/queries/0_stateless/04033_tpc_ds_q61.sh b/tests/queries/0_stateless/04033_tpc_ds_q61.sh index bd8b373aa1b0..14876358e56b 100755 --- a/tests/queries/0_stateless/04033_tpc_ds_q61.sh +++ b/tests/queries/0_stateless/04033_tpc_ds_q61.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check, no-parallel +# Tags: no-fasttest, no-random-settings, no-replicated-database, no-flaky-check # no-fasttest: TPC-DS tables use web disk (S3) which is not available in fasttest. # no-random-settings: random session_timezone, query_plan_join_swap_table, etc. change query results. # no-replicated-database: the `tpcds` database is not created in DatabaseReplicated mode.