diff --git a/.github/workflows/backport_branches.yml b/.github/workflows/backport_branches.yml index 4420cf3f8957..bfd6de852250 100644 --- a/.github/workflows/backport_branches.yml +++ b/.github/workflows/backport_branches.yml @@ -239,6 +239,18 @@ jobs: python3 -m praktika run 'Build (amd_debug)' --workflow "BackportPR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_DEBUG_GH + id: upload_CH_AMD_DEBUG_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_DEBUG_GH + if: steps.upload_CH_AMD_DEBUG_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_DEBUG_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_asan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -286,6 +298,18 @@ jobs: python3 -m praktika run 'Build (amd_asan)' --workflow "BackportPR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_ASAN_GH + id: upload_CH_AMD_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_ASAN_GH + if: steps.upload_CH_AMD_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -333,6 +357,18 @@ jobs: python3 -m praktika run 'Build (amd_tsan)' --workflow "BackportPR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_TSAN_GH + id: upload_CH_AMD_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_TSAN_GH + if: steps.upload_CH_AMD_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_release: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -839,6 +875,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -886,6 +929,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -933,6 +983,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1027,6 +1084,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1074,6 +1138,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1121,6 +1192,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1168,6 +1246,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1215,6 +1300,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1262,6 +1354,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1309,6 +1408,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1356,6 +1462,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1403,6 +1516,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1450,6 +1570,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1497,6 +1624,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1544,6 +1678,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 383fef476c78..ca4decbc8f99 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -284,6 +284,18 @@ jobs: python3 -m praktika run 'Build (amd_debug)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_DEBUG_GH + id: upload_CH_AMD_DEBUG_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_DEBUG_GH + if: steps.upload_CH_AMD_DEBUG_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_DEBUG_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_asan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -331,6 +343,18 @@ jobs: python3 -m praktika run 'Build (amd_asan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_ASAN_GH + id: upload_CH_AMD_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_ASAN_GH + if: steps.upload_CH_AMD_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -378,6 +402,18 @@ jobs: python3 -m praktika run 'Build (amd_tsan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_TSAN_GH + id: upload_CH_AMD_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_TSAN_GH + if: steps.upload_CH_AMD_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_msan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -425,6 +461,18 @@ jobs: python3 -m praktika run 'Build (amd_msan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_MSAN_GH + id: upload_CH_AMD_MSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_MSAN_GH + if: steps.upload_CH_AMD_MSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_MSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_ubsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -472,6 +520,18 @@ jobs: python3 -m praktika run 'Build (amd_ubsan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_UBSAN_GH + id: upload_CH_AMD_UBSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_UBSAN_GH + if: steps.upload_CH_AMD_UBSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_UBSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -519,6 +579,18 @@ jobs: python3 -m praktika run 'Build (amd_binary)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_BINARY_GH + id: upload_CH_AMD_BINARY_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_BINARY_GH + if: steps.upload_CH_AMD_BINARY_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_BINARY_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_asan: runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -566,6 +638,18 @@ jobs: python3 -m praktika run 'Build (arm_asan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_ASAN_GH + id: upload_CH_ARM_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_ASAN_GH + if: steps.upload_CH_ARM_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -613,6 +697,18 @@ jobs: python3 -m praktika run 'Build (arm_binary)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_BIN_GH + id: upload_CH_ARM_BIN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_BIN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_BIN_GH + if: steps.upload_CH_ARM_BIN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_BIN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_release: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -1260,6 +1356,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1307,6 +1410,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1354,6 +1464,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1401,6 +1518,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1448,6 +1572,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1495,6 +1626,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1542,6 +1680,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1589,6 +1734,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1636,6 +1788,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1683,6 +1842,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1730,6 +1896,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1777,6 +1950,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1824,6 +2004,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1871,6 +2058,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1918,6 +2112,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1965,6 +2166,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2012,6 +2220,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2059,6 +2274,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2106,6 +2328,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2153,6 +2382,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2200,6 +2436,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2247,6 +2490,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2294,6 +2544,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2341,6 +2598,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2388,6 +2652,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2435,6 +2706,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2482,6 +2760,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2623,6 +2908,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2670,6 +2962,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2717,6 +3016,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2764,6 +3070,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2811,6 +3124,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2858,6 +3178,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2905,6 +3232,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2952,6 +3286,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2999,6 +3340,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3046,6 +3394,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3093,6 +3448,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3140,6 +3502,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3187,6 +3556,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3234,6 +3610,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3281,6 +3664,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3328,6 +3718,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3375,6 +3772,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3610,6 +4014,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3657,6 +4068,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3704,6 +4122,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3751,6 +4176,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3798,6 +4230,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3845,6 +4284,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4268,6 +4714,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4315,6 +4768,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4362,6 +4822,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4409,6 +4876,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4456,6 +4930,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4503,6 +4984,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4550,6 +5038,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4597,6 +5092,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4644,6 +5146,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4691,6 +5200,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | diff --git a/.github/workflows/merge_queue.yml b/.github/workflows/merge_queue.yml index b5e09cbdab00..a74591bde713 100644 --- a/.github/workflows/merge_queue.yml +++ b/.github/workflows/merge_queue.yml @@ -275,6 +275,18 @@ jobs: python3 -m praktika run 'Build (amd_binary)' --workflow "MergeQueueCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_BINARY_GH + id: upload_CH_AMD_BINARY_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_BINARY_GH + if: steps.upload_CH_AMD_BINARY_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_BINARY_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + finish_workflow: runs-on: [self-hosted, altinity-on-demand, altinity-style-checker-aarch64] needs: [config_workflow, dockers_build_amd, dockers_build_arm, fast_test, build_amd_binary] diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index bde57c72846f..1cf305483336 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -334,6 +334,18 @@ jobs: python3 -m praktika run 'Build (amd_debug)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_DEBUG_GH + id: upload_CH_AMD_DEBUG_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_DEBUG_GH + if: steps.upload_CH_AMD_DEBUG_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_DEBUG_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_asan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -381,6 +393,18 @@ jobs: python3 -m praktika run 'Build (amd_asan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_ASAN_GH + id: upload_CH_AMD_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_ASAN_GH + if: steps.upload_CH_AMD_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -428,6 +452,18 @@ jobs: python3 -m praktika run 'Build (amd_tsan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_TSAN_GH + id: upload_CH_AMD_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_TSAN_GH + if: steps.upload_CH_AMD_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_msan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -475,6 +511,18 @@ jobs: python3 -m praktika run 'Build (amd_msan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_MSAN_GH + id: upload_CH_AMD_MSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_MSAN_GH + if: steps.upload_CH_AMD_MSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_MSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_ubsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -522,6 +570,18 @@ jobs: python3 -m praktika run 'Build (amd_ubsan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_UBSAN_GH + id: upload_CH_AMD_UBSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_UBSAN_GH + if: steps.upload_CH_AMD_UBSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_UBSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -569,6 +629,18 @@ jobs: python3 -m praktika run 'Build (amd_binary)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_BINARY_GH + id: upload_CH_AMD_BINARY_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_BINARY_GH + if: steps.upload_CH_AMD_BINARY_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_BINARY_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_asan: runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -616,6 +688,18 @@ jobs: python3 -m praktika run 'Build (arm_asan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_ASAN_GH + id: upload_CH_ARM_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_ASAN_GH + if: steps.upload_CH_ARM_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -663,6 +747,18 @@ jobs: python3 -m praktika run 'Build (arm_binary)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_BIN_GH + id: upload_CH_ARM_BIN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_BIN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_BIN_GH + if: steps.upload_CH_ARM_BIN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_BIN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -710,6 +806,18 @@ jobs: python3 -m praktika run 'Build (arm_tsan)' --workflow "PR" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_TSAN_GH + id: upload_CH_ARM_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_TSAN_GH + if: steps.upload_CH_ARM_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_release: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, fast_test] @@ -840,6 +948,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -887,6 +1002,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -934,6 +1056,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -981,6 +1110,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1028,6 +1164,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1075,6 +1218,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1122,6 +1272,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1169,6 +1326,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1216,6 +1380,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1263,6 +1434,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1310,6 +1488,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1357,6 +1542,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1404,6 +1596,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1451,6 +1650,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1498,6 +1704,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1545,6 +1758,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1592,6 +1812,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1639,6 +1866,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1686,6 +1920,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1733,6 +1974,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1780,6 +2028,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1827,6 +2082,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1874,6 +2136,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1921,6 +2190,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1968,6 +2244,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2015,6 +2298,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2062,6 +2352,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2109,6 +2406,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2156,6 +2460,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2203,6 +2514,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2344,6 +2662,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2391,6 +2716,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2438,6 +2770,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2485,6 +2824,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2532,6 +2878,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2579,6 +2932,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2626,6 +2986,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2673,6 +3040,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2720,6 +3094,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2767,6 +3148,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -2814,6 +3202,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3049,6 +3444,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3096,6 +3498,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3143,6 +3552,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3190,6 +3606,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3237,6 +3660,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -3284,6 +3714,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4083,6 +4520,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4130,6 +4574,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4177,6 +4628,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4224,6 +4682,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4271,6 +4736,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4318,6 +4790,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_DEBUG_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4365,6 +4844,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_ARM_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4412,6 +4898,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4459,6 +4952,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_MSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -4506,6 +5006,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_UBSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ./ci/tmp + - name: Run id: run run: | diff --git a/.github/workflows/regression-reusable-suite.yml b/.github/workflows/regression-reusable-suite.yml index aa380c659bcd..20843c80c79d 100644 --- a/.github/workflows/regression-reusable-suite.yml +++ b/.github/workflows/regression-reusable-suite.yml @@ -93,6 +93,7 @@ jobs: build_sha: ${{ inputs.build_sha }} pr_number: ${{ github.event.number }} artifacts: builds + GH_BINARY_ARTIFACT_NAME: ${{ inputs.runner_arch == 'aarch64' && 'CH_ARM_BIN_GH' || 'CH_AMD_BINARY_GH' }} # Args args: --test-to-end --no-colors @@ -115,6 +116,12 @@ jobs: ./*/*/_instances/*.log steps: + - name: ๐Ÿ”ง Fix workspace ownership + run: | + if command -v sudo >/dev/null 2>&1; then + sudo chown -R "$(id -u):$(id -g)" "$GITHUB_WORKSPACE" || true + fi + - name: โคต๏ธ Checkout uses: actions/checkout@v4 with: @@ -127,7 +134,30 @@ jobs: - name: ๐Ÿ› ๏ธ Setup run: .github/setup.sh + - name: ๐Ÿ“ฅ Try get binary from GH artifact + id: get_binary_gh + continue-on-error: true + uses: actions/download-artifact@v4 + with: + name: ${{ env.GH_BINARY_ARTIFACT_NAME }} + path: ${{ runner.temp }}/gh_binary + + - name: ๐Ÿ”Ž Resolve binary source + id: resolve_binary_source + run: | + GH_BINARY="${{ runner.temp }}/gh_binary/clickhouse" + if [ -f "$GH_BINARY" ]; then + chmod +x "$GH_BINARY" + echo "clickhouse_path=$GH_BINARY" >> "$GITHUB_ENV" + echo "has_gh_binary=true" >> "$GITHUB_OUTPUT" + echo "Using GH artifact binary: $GH_BINARY" + else + echo "has_gh_binary=false" >> "$GITHUB_OUTPUT" + echo "GH artifact binary not found, fallback to S3 URL resolution" + fi + - name: ๐Ÿ“ฆ Get deb url + if: ${{ steps.resolve_binary_source.outputs.has_gh_binary != 'true' }} env: S3_BASE_URL: https://altinity-build-artifacts.s3.amazonaws.com/ PR_NUMBER: ${{ github.event.pull_request.number || 0 }} diff --git a/.github/workflows/release_branches.yml b/.github/workflows/release_branches.yml index ecfe9f95e8c9..d92107811e34 100644 --- a/.github/workflows/release_branches.yml +++ b/.github/workflows/release_branches.yml @@ -237,6 +237,18 @@ jobs: python3 -m praktika run 'Build (amd_debug)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_DEBUG_GH + id: upload_CH_AMD_DEBUG_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_DEBUG_GH + if: steps.upload_CH_AMD_DEBUG_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_DEBUG_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_asan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -284,6 +296,18 @@ jobs: python3 -m praktika run 'Build (amd_asan)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_ASAN_GH + id: upload_CH_AMD_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_ASAN_GH + if: steps.upload_CH_AMD_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -331,6 +355,18 @@ jobs: python3 -m praktika run 'Build (amd_tsan)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_TSAN_GH + id: upload_CH_AMD_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_TSAN_GH + if: steps.upload_CH_AMD_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_msan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -378,6 +414,18 @@ jobs: python3 -m praktika run 'Build (amd_msan)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_MSAN_GH + id: upload_CH_AMD_MSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_MSAN_GH + if: steps.upload_CH_AMD_MSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_MSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_ubsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -425,6 +473,18 @@ jobs: python3 -m praktika run 'Build (amd_ubsan)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_UBSAN_GH + id: upload_CH_AMD_UBSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_UBSAN_GH + if: steps.upload_CH_AMD_UBSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_UBSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_asan: runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -472,6 +532,18 @@ jobs: python3 -m praktika run 'Build (arm_asan)' --workflow "ReleaseBranchCI" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_ASAN_GH + id: upload_CH_ARM_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_ASAN_GH + if: steps.upload_CH_ARM_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_release: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm] @@ -884,6 +956,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -931,6 +1010,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -978,6 +1064,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1025,6 +1118,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1072,6 +1172,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1119,6 +1226,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1166,6 +1280,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1213,6 +1334,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1260,6 +1388,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1307,6 +1442,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1354,6 +1496,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1401,6 +1550,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1448,6 +1604,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_ASAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1495,6 +1658,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1542,6 +1712,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1589,6 +1766,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1636,6 +1820,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1683,6 +1874,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1730,6 +1928,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_TSAN_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ./ci/tmp + - name: Run id: run run: | diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index cc73fbf821b1..82b71c720ab8 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -284,6 +284,18 @@ jobs: python3 -m praktika run 'Build (amd_debug)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_DEBUG_GH + id: upload_CH_AMD_DEBUG_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_DEBUG_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_DEBUG_GH + if: steps.upload_CH_AMD_DEBUG_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_DEBUG_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_asan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, build_amd_binary, build_arm_binary] @@ -333,6 +345,18 @@ jobs: python3 -m praktika run 'Build (amd_asan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_ASAN_GH + id: upload_CH_AMD_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_ASAN_GH + if: steps.upload_CH_AMD_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_tsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, build_amd_binary, build_arm_binary] @@ -382,6 +406,18 @@ jobs: python3 -m praktika run 'Build (amd_tsan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_TSAN_GH + id: upload_CH_AMD_TSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_TSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_TSAN_GH + if: steps.upload_CH_AMD_TSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_TSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_msan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, build_amd_binary, build_arm_binary] @@ -431,6 +467,18 @@ jobs: python3 -m praktika run 'Build (amd_msan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_MSAN_GH + id: upload_CH_AMD_MSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_MSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_MSAN_GH + if: steps.upload_CH_AMD_MSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_MSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_ubsan: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, build_amd_binary, build_arm_binary] @@ -480,6 +528,18 @@ jobs: python3 -m praktika run 'Build (amd_ubsan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_UBSAN_GH + id: upload_CH_AMD_UBSAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_UBSAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_UBSAN_GH + if: steps.upload_CH_AMD_UBSAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_UBSAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -529,6 +589,18 @@ jobs: python3 -m praktika run 'Build (amd_binary)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_AMD_BINARY_GH + id: upload_CH_AMD_BINARY_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_AMD_BINARY_GH + if: steps.upload_CH_AMD_BINARY_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_AMD_BINARY_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_asan: runs-on: [self-hosted, altinity-on-demand, altinity-func-tester-aarch64] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest, build_amd_binary, build_arm_binary] @@ -578,6 +650,18 @@ jobs: python3 -m praktika run 'Build (arm_asan)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_ASAN_GH + id: upload_CH_ARM_ASAN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_ASAN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_ASAN_GH + if: steps.upload_CH_ARM_ASAN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_ASAN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_arm_binary: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -627,6 +711,18 @@ jobs: python3 -m praktika run 'Build (arm_binary)' --workflow "Release Builds" --ci |& tee ./ci/tmp/job.log fi + - name: Upload artifact CH_ARM_BIN_GH + id: upload_CH_ARM_BIN_GH + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: CH_ARM_BIN_GH + path: ci/tmp/build/programs/self-extracting/clickhouse + retention-days: 1 + - name: Warn on failed upload of CH_ARM_BIN_GH + if: steps.upload_CH_ARM_BIN_GH.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [CH_ARM_BIN_GH] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." + build_amd_release: runs-on: [self-hosted, altinity-on-demand, altinity-builder] needs: [config_workflow, dockers_build_amd, dockers_build_arm, dockers_build_multiplatform_manifest] @@ -959,6 +1055,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1008,6 +1111,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1057,6 +1167,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | @@ -1106,6 +1223,13 @@ jobs: EOF ENV_SETUP_SCRIPT_EOF + - name: Download artifact CH_AMD_BINARY_GH + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: CH_AMD_BINARY_GH + path: ./ci/tmp + - name: Run id: run run: | diff --git a/ci/defs/defs.py b/ci/defs/defs.py index 8adc85dc249d..0a5dc0a05d8e 100644 --- a/ci/defs/defs.py +++ b/ci/defs/defs.py @@ -416,6 +416,15 @@ class ArtifactNames: CH_RISCV64 = "CH_RISCV64_BIN" CH_S390X = "CH_S390X_BIN" CH_LOONGARCH64 = "CH_LOONGARCH64_BIN" + CH_AMD_DEBUG_GH = "CH_AMD_DEBUG_GH" + CH_AMD_BINARY_GH = "CH_AMD_BINARY_GH" + CH_ARM_BINARY_GH = "CH_ARM_BIN_GH" + CH_AMD_ASAN_GH = "CH_AMD_ASAN_GH" + CH_AMD_TSAN_GH = "CH_AMD_TSAN_GH" + CH_AMD_MSAN_GH = "CH_AMD_MSAN_GH" + CH_AMD_UBSAN_GH = "CH_AMD_UBSAN_GH" + CH_ARM_ASAN_GH = "CH_ARM_ASAN_GH" + CH_ARM_TSAN_GH = "CH_ARM_TSAN_GH" FAST_TEST = "FAST_TEST" UNITTEST_AMD_ASAN = "UNITTEST_AMD_ASAN" @@ -474,6 +483,23 @@ class ArtifactConfigs: ArtifactNames.CH_LOONGARCH64, ] ) + clickhouse_binaries_gh = Artifact.Config( + name="...", + type=Artifact.Type.GH, + path=f"{TEMP_DIR}/build/programs/self-extracting/clickhouse", + ).parametrize( + names=[ + ArtifactNames.CH_AMD_DEBUG_GH, + ArtifactNames.CH_AMD_BINARY_GH, + ArtifactNames.CH_ARM_BINARY_GH, + ArtifactNames.CH_AMD_ASAN_GH, + ArtifactNames.CH_AMD_TSAN_GH, + ArtifactNames.CH_AMD_MSAN_GH, + ArtifactNames.CH_AMD_UBSAN_GH, + ArtifactNames.CH_ARM_ASAN_GH, + ArtifactNames.CH_ARM_TSAN_GH, + ] + ) clickhouse_stripped_binaries = Artifact.Config( name="...", type=Artifact.Type.S3, diff --git a/ci/defs/job_configs.py b/ci/defs/job_configs.py index 6526d31267a5..0ca6ad8ae30a 100644 --- a/ci/defs/job_configs.py +++ b/ci/defs/job_configs.py @@ -183,13 +183,18 @@ class JobConfigs: ).parametrize( Job.ParamSet( parameter=BuildTypes.AMD_DEBUG, - provides=[ArtifactNames.CH_AMD_DEBUG, ArtifactNames.DEB_AMD_DEBUG], + provides=[ + ArtifactNames.CH_AMD_DEBUG, + ArtifactNames.CH_AMD_DEBUG_GH, + ArtifactNames.DEB_AMD_DEBUG, + ], runs_on=RunnerLabels.BUILDER_AMD, ), Job.ParamSet( parameter=BuildTypes.AMD_ASAN, provides=[ ArtifactNames.CH_AMD_ASAN, + ArtifactNames.CH_AMD_ASAN_GH, ArtifactNames.DEB_AMD_ASAN, ArtifactNames.UNITTEST_AMD_ASAN, ], @@ -199,6 +204,7 @@ class JobConfigs: parameter=BuildTypes.AMD_TSAN, provides=[ ArtifactNames.CH_AMD_TSAN, + ArtifactNames.CH_AMD_TSAN_GH, ArtifactNames.DEB_AMD_TSAN, ArtifactNames.UNITTEST_AMD_TSAN, ], @@ -208,6 +214,7 @@ class JobConfigs: parameter=BuildTypes.AMD_MSAN, provides=[ ArtifactNames.CH_AMD_MSAN, + ArtifactNames.CH_AMD_MSAN_GH, ArtifactNames.DEB_AMD_MSAN, ArtifactNames.UNITTEST_AMD_MSAN, ], @@ -217,6 +224,7 @@ class JobConfigs: parameter=BuildTypes.AMD_UBSAN, provides=[ ArtifactNames.CH_AMD_UBSAN, + ArtifactNames.CH_AMD_UBSAN_GH, ArtifactNames.DEB_AMD_UBSAN, ArtifactNames.UNITTEST_AMD_UBSAN, ], @@ -224,20 +232,21 @@ class JobConfigs: ), Job.ParamSet( parameter=BuildTypes.AMD_BINARY, - provides=[ArtifactNames.CH_AMD_BINARY], + provides=[ArtifactNames.CH_AMD_BINARY, ArtifactNames.CH_AMD_BINARY_GH], runs_on=RunnerLabels.BUILDER_AMD, ), Job.ParamSet( parameter=BuildTypes.ARM_ASAN, provides=[ ArtifactNames.CH_ARM_ASAN, + ArtifactNames.CH_ARM_ASAN_GH, ArtifactNames.DEB_ARM_ASAN, ], runs_on=RunnerLabels.ARM_LARGE, ), Job.ParamSet( parameter=BuildTypes.ARM_BINARY, - provides=[ArtifactNames.CH_ARM_BINARY], + provides=[ArtifactNames.CH_ARM_BINARY, ArtifactNames.CH_ARM_BINARY_GH], runs_on=RunnerLabels.BUILDER_AMD, ), ) @@ -290,6 +299,7 @@ class JobConfigs: parameter=BuildTypes.ARM_TSAN, provides=[ ArtifactNames.CH_ARM_TSAN, + ArtifactNames.CH_ARM_TSAN_GH, ], runs_on=RunnerLabels.BUILDER_AMD, ), @@ -427,14 +437,14 @@ class JobConfigs: Job.ParamSet( parameter="amd_asan, flaky check", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ), ) stateless_tests_targeted_pr_jobs = common_ft_job_config.parametrize( Job.ParamSet( parameter="arm_asan, targeted", runs_on=RunnerLabels.FUNC_TESTER_ARM, - requires=[ArtifactNames.CH_ARM_ASAN], + requires=[ArtifactNames.CH_ARM_ASAN_GH], ), ) # --root/--privileged/--cgroupns=host is required for clickhouse-test --memory-limit @@ -464,7 +474,7 @@ class JobConfigs: "./ci/jobs/queries", ], ), - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], runs_on=RunnerLabels.AMD_SMALL, ) functional_tests_jobs = common_ft_job_config.parametrize( @@ -472,7 +482,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_asan, distributed plan, parallel, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -480,53 +490,53 @@ class JobConfigs: Job.ParamSet( parameter="amd_asan, db disk, distributed plan, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ), Job.ParamSet( parameter="amd_binary, old analyzer, s3 storage, DatabaseReplicated, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, # large machine - no boost, why? - requires=[ArtifactNames.CH_AMD_BINARY], + requires=[ArtifactNames.CH_AMD_BINARY_GH], ), Job.ParamSet( parameter="amd_binary, old analyzer, s3 storage, DatabaseReplicated, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_BINARY], + requires=[ArtifactNames.CH_AMD_BINARY_GH], ), Job.ParamSet( parameter="amd_binary, ParallelReplicas, s3 storage, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, # large machine - no boost, why? - requires=[ArtifactNames.CH_AMD_BINARY], + requires=[ArtifactNames.CH_AMD_BINARY_GH], ), Job.ParamSet( parameter="amd_binary, ParallelReplicas, s3 storage, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_BINARY], + requires=[ArtifactNames.CH_AMD_BINARY_GH], ), Job.ParamSet( parameter="amd_debug, AsyncInsert, s3 storage, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, # large machine - no boost, why? - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="amd_debug, AsyncInsert, s3 storage, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="amd_debug, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="amd_debug, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), *[ Job.ParamSet( parameter=f"amd_tsan, parallel, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -535,7 +545,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_tsan, sequential, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -544,7 +554,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_msan, parallel, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_MSAN], + requires=[ArtifactNames.CH_AMD_MSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -553,7 +563,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_msan, sequential, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_MSAN], + requires=[ArtifactNames.CH_AMD_MSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -561,28 +571,28 @@ class JobConfigs: Job.ParamSet( parameter="amd_ubsan, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, # it runs much faster than many job, no need larger machine - requires=[ArtifactNames.CH_AMD_UBSAN], + requires=[ArtifactNames.CH_AMD_UBSAN_GH], ), Job.ParamSet( parameter="amd_ubsan, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_UBSAN], + requires=[ArtifactNames.CH_AMD_UBSAN_GH], ), Job.ParamSet( parameter="amd_debug, distributed plan, s3 storage, parallel", runs_on=RunnerLabels.FUNC_TESTER_AMD, # large machine - no boost, why? - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="amd_debug, distributed plan, s3 storage, sequential", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), *[ Job.ParamSet( parameter=f"amd_tsan, s3 storage, parallel, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -591,7 +601,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_tsan, s3 storage, sequential, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ) for total_batches in (2,) for batch in range(1, total_batches + 1) @@ -624,7 +634,7 @@ class JobConfigs: Job.ParamSet( parameter=f"arm_asan, azure, parallel, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_ARM, - requires=[ArtifactNames.CH_ARM_ASAN], + requires=[ArtifactNames.CH_ARM_ASAN_GH], timeout=3600 * 4, ) for total_batches in (4,) @@ -634,7 +644,7 @@ class JobConfigs: Job.ParamSet( parameter=f"arm_asan, azure, sequential, {batch}/{total_batches}", runs_on=RunnerLabels.FUNC_TESTER_ARM, - requires=[ArtifactNames.CH_ARM_ASAN], + requires=[ArtifactNames.CH_ARM_ASAN_GH], timeout=3600 * 4, ) for total_batches in (2,) @@ -767,7 +777,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_asan, db disk, {batch}/{total_batches}", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ) for total_batches in (4,) for batch in range(1, total_batches + 1) @@ -778,7 +788,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_asan, db disk, old analyzer, {batch}/{total_batches}", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ) for total_batches in (6,) for batch in range(1, total_batches + 1) @@ -787,7 +797,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_binary, {batch}/{total_batches}", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_BINARY], + requires=[ArtifactNames.CH_AMD_BINARY_GH], ) for total_batches in (5,) for batch in range(1, total_batches + 1) @@ -807,7 +817,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_tsan, {batch}/{total_batches}", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ) for total_batches in (6,) for batch in range(1, total_batches + 1) @@ -818,7 +828,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_asan, flaky", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ) ) ) @@ -826,7 +836,7 @@ class JobConfigs: Job.ParamSet( parameter=f"amd_asan, targeted", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_ASAN], + requires=[ArtifactNames.CH_AMD_ASAN_GH], ) ) compatibility_test_jobs = Job.Config( @@ -868,27 +878,27 @@ class JobConfigs: Job.ParamSet( parameter="amd_debug", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="arm_asan", runs_on=RunnerLabels.FUNC_TESTER_ARM, - requires=[ArtifactNames.CH_ARM_ASAN], + requires=[ArtifactNames.CH_ARM_ASAN_GH], ), Job.ParamSet( parameter="amd_tsan", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ), Job.ParamSet( parameter="amd_msan", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_MSAN], + requires=[ArtifactNames.CH_AMD_MSAN_GH], ), Job.ParamSet( parameter="amd_ubsan", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_UBSAN], + requires=[ArtifactNames.CH_AMD_UBSAN_GH], ), ) buzz_fuzzer_jobs = Job.Config( @@ -910,27 +920,27 @@ class JobConfigs: Job.ParamSet( parameter="amd_debug", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), Job.ParamSet( parameter="arm_asan", runs_on=RunnerLabels.ARM_MEDIUM, - requires=[ArtifactNames.CH_ARM_ASAN], + requires=[ArtifactNames.CH_ARM_ASAN_GH], ), Job.ParamSet( parameter="amd_tsan", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_TSAN], + requires=[ArtifactNames.CH_AMD_TSAN_GH], ), Job.ParamSet( parameter="amd_msan", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_MSAN], + requires=[ArtifactNames.CH_AMD_MSAN_GH], ), Job.ParamSet( parameter="amd_ubsan", runs_on=RunnerLabels.AMD_MEDIUM, - requires=[ArtifactNames.CH_AMD_UBSAN], + requires=[ArtifactNames.CH_AMD_UBSAN_GH], ), ) performance_comparison_with_master_head_jobs = Job.Config( @@ -1081,7 +1091,7 @@ class JobConfigs: Job.ParamSet( parameter="amd_debug", runs_on=RunnerLabels.FUNC_TESTER_AMD, - requires=[ArtifactNames.CH_AMD_DEBUG], + requires=[ArtifactNames.CH_AMD_DEBUG_GH], ), ) sqltest_master_job = Job.Config( diff --git a/ci/praktika/runner.py b/ci/praktika/runner.py index ca9c0c0f8eae..50d2223fb440 100644 --- a/ci/praktika/runner.py +++ b/ci/praktika/runner.py @@ -176,16 +176,17 @@ def _pre_run(self, workflow, job, local_run=False): if job.requires and not _is_praktika_job(job.name): print("Download required artifacts") required_artifacts = [] + required_gh_artifacts = [] # praktika service jobs do not require any of artifacts and excluded in if to not upload "hacky" artifact report. # this artifact is created to replace legacy build_report and maintain seamless transition to praktika # once there is no need for this "hacky" artifact report - second condition in "if" can be removed for requires_artifact_name in job.requires: for artifact in workflow.artifacts: - if ( - artifact.name == requires_artifact_name - and artifact.type == Artifact.Type.S3 - ): - required_artifacts.append(artifact) + if artifact.name == requires_artifact_name: + if artifact.type == Artifact.Type.S3: + required_artifacts.append(artifact) + elif artifact.type == Artifact.Type.GH: + required_gh_artifacts.append(artifact) else: if ( requires_artifact_name @@ -247,6 +248,88 @@ def _pre_run(self, workflow, job, local_run=False): if artifact.compress_zst: Utils.decompress_file(Path(Settings.INPUT_DIR) / artifact_path) + # GH artifacts are downloaded by workflow YAML steps. If they are missing (e.g. rerun after + # short GH retention expiry), attempt fallback to matching S3 artifact by name. + for gh_artifact in required_gh_artifacts: + if isinstance(gh_artifact.path, (tuple, list)): + gh_paths = gh_artifact.path + else: + gh_paths = [gh_artifact.path] + + expected_local_paths = [] + unresolved_pattern = False + for gh_path in gh_paths: + if "*" in gh_path: + unresolved_pattern = True + continue + expected_local_paths.append(Path(Settings.INPUT_DIR) / Path(gh_path).name) + + if expected_local_paths and all(p.exists() for p in expected_local_paths): + continue + + if unresolved_pattern and not expected_local_paths: + print( + f"WARNING: Cannot resolve expected local path for GH artifact [{gh_artifact.name}] with wildcard path [{gh_artifact.path}] - skip S3 fallback" + ) + continue + + s3_fallback_name = ( + gh_artifact.name[:-3] + if gh_artifact.name.endswith("_GH") + else gh_artifact.name + ) + s3_fallback_artifact = None + for artifact in workflow.artifacts: + if ( + artifact.name == s3_fallback_name + and artifact.type == Artifact.Type.S3 + ): + s3_fallback_artifact = artifact + break + + if not s3_fallback_artifact: + print( + f"WARNING: GH artifact [{gh_artifact.name}] is missing and no S3 fallback artifact [{s3_fallback_name}] is configured" + ) + continue + + print( + f"GH artifact [{gh_artifact.name}] is missing; fallback to S3 artifact [{s3_fallback_artifact.name}]" + ) + fallback_prefix = env.get_s3_prefix() + + fallback_artifact = dataclasses.replace(s3_fallback_artifact) + if fallback_artifact.compress_zst: + assert not isinstance( + fallback_artifact.path, (tuple, list) + ), "Not yes supported for compressed artifacts" + fallback_artifact.path = f"{Path(fallback_artifact.path).name}.zst" + + if isinstance(fallback_artifact.path, (tuple, list)): + fallback_paths = fallback_artifact.path + else: + fallback_paths = [fallback_artifact.path] + + for fallback_path in fallback_paths: + recursive = False + include_pattern = "" + if "*" in fallback_path: + s3_path = f"{Settings.S3_ARTIFACT_PATH}/{fallback_prefix}/{Utils.normalize_string(fallback_artifact._provided_by)}/" + recursive = True + include_pattern = Path(fallback_path).name + assert "*" in include_pattern + else: + s3_path = f"{Settings.S3_ARTIFACT_PATH}/{fallback_prefix}/{Utils.normalize_string(fallback_artifact._provided_by)}/{Path(fallback_path).name}" + S3.copy_file_from_s3( + s3_path=s3_path, + local_path=Settings.INPUT_DIR, + recursive=recursive, + include_pattern=include_pattern, + ) + + if fallback_artifact.compress_zst: + Utils.decompress_file(Path(Settings.INPUT_DIR) / fallback_path) + return 0 def _run( diff --git a/ci/praktika/validator.py b/ci/praktika/validator.py index b8b518a3ed53..51f89dceb9fb 100644 --- a/ci/praktika/validator.py +++ b/ci/praktika/validator.py @@ -204,8 +204,8 @@ def is_valid_cron_field(field: str) -> bool: if workflow.enable_cache: for artifact in workflow.artifacts or []: assert ( - artifact.is_s3_artifact() - ), f"All artifacts must be of S3 type if enable_cache|enable_html=True, artifact [{artifact.name}], type [{artifact.type}], workflow [{workflow.name}]" + artifact.is_s3_artifact() or artifact.type == Artifact.Type.GH + ), f"Artifacts must be S3 or GH type if enable_cache|enable_html=True, artifact [{artifact.name}], type [{artifact.type}], workflow [{workflow.name}]" if workflow.dockers and not workflow.disable_dockers_build: assert ( diff --git a/ci/praktika/yaml_generator.py b/ci/praktika/yaml_generator.py index 109bdf8b534b..28123472aa1b 100644 --- a/ci/praktika/yaml_generator.py +++ b/ci/praktika/yaml_generator.py @@ -219,6 +219,20 @@ class Templates: """ TEMPLATE_GH_UPLOAD = """ + - name: Upload artifact {NAME} + id: upload_{NAME} + uses: actions/upload-artifact@v7 + continue-on-error: true + with: + name: {NAME} + path: {PATH} + retention-days: 1 + - name: Warn on failed upload of {NAME} + if: steps.upload_{NAME}.outcome == 'failure' + run: echo "::warning title=GH artifact upload failed::Failed to upload [{NAME}] to GitHub artifacts (e.g. quota/rate limit). Downstream consumers will fall back to S3." +""" + + TEMPLATE_GH_UPLOAD_NO_RETENTION = """ - name: Upload artifact {NAME} uses: actions/upload-artifact@v7 with: @@ -227,6 +241,15 @@ class Templates: """ TEMPLATE_GH_DOWNLOAD = """ + - name: Download artifact {NAME} + uses: actions/download-artifact@v8 + continue-on-error: true + with: + name: {NAME} + path: {PATH} +""" + + TEMPLATE_GH_DOWNLOAD_STRICT = """ - name: Download artifact {NAME} uses: actions/download-artifact@v8 with: @@ -304,16 +327,26 @@ def generate(self): ) uploads_github = [] for artifact in job.artifacts_gh_provides: + upload_template = YamlGenerator.Templates.TEMPLATE_GH_UPLOAD + if self.workflow_config.name == "Community PR": + upload_template = ( + YamlGenerator.Templates.TEMPLATE_GH_UPLOAD_NO_RETENTION + ) uploads_github.append( - YamlGenerator.Templates.TEMPLATE_GH_UPLOAD.format( + upload_template.format( NAME=artifact.name, PATH=os.path.relpath(artifact.path, os.getcwd()), ) ) downloads_github = [] for artifact in job.artifacts_gh_requires: + download_template = YamlGenerator.Templates.TEMPLATE_GH_DOWNLOAD + if self.workflow_config.name == "Community PR": + download_template = ( + YamlGenerator.Templates.TEMPLATE_GH_DOWNLOAD_STRICT + ) downloads_github.append( - YamlGenerator.Templates.TEMPLATE_GH_DOWNLOAD.format( + download_template.format( NAME=artifact.name, PATH=Settings.INPUT_DIR ) ) @@ -326,7 +359,7 @@ def generate(self): # NOTE (strtgbb): We still want the cache logic, we use it for skipping based on PR config if ( # self.workflow_config.config.enable_cache - # and + # and job_name_normalized != config_job_name_normalized ): if_expression = YamlGenerator.Templates.TEMPLATE_IF_EXPRESSION.format( diff --git a/ci/workflows/backport_branches.py b/ci/workflows/backport_branches.py index 8f0209bedc1e..28f1b240eb2a 100644 --- a/ci/workflows/backport_branches.py +++ b/ci/workflows/backport_branches.py @@ -40,6 +40,7 @@ artifacts=[ *ArtifactConfigs.unittests_binaries, *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, *ArtifactConfigs.clickhouse_stripped_binaries, *ArtifactConfigs.clickhouse_debians, *ArtifactConfigs.clickhouse_rpms, diff --git a/ci/workflows/master.py b/ci/workflows/master.py index ff69fa850e75..6df77a7f6fb2 100644 --- a/ci/workflows/master.py +++ b/ci/workflows/master.py @@ -53,6 +53,7 @@ artifacts=[ *ArtifactConfigs.unittests_binaries, *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, *ArtifactConfigs.clickhouse_stripped_binaries, *ArtifactConfigs.clickhouse_debians, *ArtifactConfigs.clickhouse_rpms, diff --git a/ci/workflows/merge_queue.py b/ci/workflows/merge_queue.py index eb5d7ab5846b..194ab0deb067 100644 --- a/ci/workflows/merge_queue.py +++ b/ci/workflows/merge_queue.py @@ -17,6 +17,11 @@ for a in ArtifactConfigs.clickhouse_binaries if a.name == ArtifactNames.CH_AMD_BINARY ], + *[ + a + for a in ArtifactConfigs.clickhouse_binaries_gh + if a.name == ArtifactNames.CH_AMD_BINARY_GH + ], ], dockers=DOCKERS, secrets=SECRETS, diff --git a/ci/workflows/nightly_coverage.py b/ci/workflows/nightly_coverage.py index 3dfcaec535cb..621aec0ccc83 100644 --- a/ci/workflows/nightly_coverage.py +++ b/ci/workflows/nightly_coverage.py @@ -17,6 +17,7 @@ secrets=SECRETS, artifacts=[ *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, ], enable_cache=True, enable_report=True, diff --git a/ci/workflows/nightly_fuzzers.py b/ci/workflows/nightly_fuzzers.py index a193047a2f0d..61807fc26f8b 100644 --- a/ci/workflows/nightly_fuzzers.py +++ b/ci/workflows/nightly_fuzzers.py @@ -23,6 +23,7 @@ ArtifactConfigs.fuzzers, ArtifactConfigs.fuzzers_corpus, *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, ], enable_cache=True, enable_report=True, diff --git a/ci/workflows/nightly_jepsen.py b/ci/workflows/nightly_jepsen.py index 918b323483bc..d5bdcab5fccc 100644 --- a/ci/workflows/nightly_jepsen.py +++ b/ci/workflows/nightly_jepsen.py @@ -27,6 +27,7 @@ ], artifacts=[ *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, ], dockers=DOCKERS, secrets=SECRETS, diff --git a/ci/workflows/pull_request.py b/ci/workflows/pull_request.py index 165458fab0c2..61654b39b02b 100644 --- a/ci/workflows/pull_request.py +++ b/ci/workflows/pull_request.py @@ -116,6 +116,7 @@ artifacts=[ *ArtifactConfigs.unittests_binaries, *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, *ArtifactConfigs.clickhouse_stripped_binaries, *ArtifactConfigs.clickhouse_debians, *ArtifactConfigs.clickhouse_rpms, diff --git a/ci/workflows/pull_request_community.py b/ci/workflows/pull_request_community.py index cd336279f1c6..53953328459f 100644 --- a/ci/workflows/pull_request_community.py +++ b/ci/workflows/pull_request_community.py @@ -23,6 +23,20 @@ j for j in JobConfigs.functional_tests_jobs if "amd_debug, parallel" in j.name ][0] + +def _normalize_gh_aliases(items): + if not items: + return items + normalized = [] + seen = set() + for item in items: + base = item[:-3] if item.endswith("_GH") else item + if base not in seen: + normalized.append(base) + seen.add(base) + return normalized + + workflow = Workflow.Config( name="Community PR", event=Workflow.Event.PULL_REQUEST, @@ -127,6 +141,8 @@ for i, job in enumerate(workflow.jobs): workflow.jobs[i] = copy.deepcopy(job) workflow.jobs[i].enable_commit_status = False + workflow.jobs[i].provides = _normalize_gh_aliases(workflow.jobs[i].provides) + workflow.jobs[i].requires = _normalize_gh_aliases(workflow.jobs[i].requires) for i, artifact in enumerate(workflow.artifacts): workflow.artifacts[i] = copy.deepcopy(artifact) diff --git a/ci/workflows/release_branches.py b/ci/workflows/release_branches.py index d873e9f36068..2b91bd469016 100644 --- a/ci/workflows/release_branches.py +++ b/ci/workflows/release_branches.py @@ -44,6 +44,7 @@ ], artifacts=[ *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, *ArtifactConfigs.clickhouse_stripped_binaries, *ArtifactConfigs.clickhouse_debians, *ArtifactConfigs.clickhouse_rpms, diff --git a/ci/workflows/release_builds.py b/ci/workflows/release_builds.py index 97a965d29a69..6c897c82ec50 100644 --- a/ci/workflows/release_builds.py +++ b/ci/workflows/release_builds.py @@ -42,6 +42,7 @@ additional_jobs=["GrypeScan", "SignRelease", "CIReport", "SourceUpload"], artifacts=[ *ArtifactConfigs.clickhouse_binaries, + *ArtifactConfigs.clickhouse_binaries_gh, *ArtifactConfigs.clickhouse_stripped_binaries, *ArtifactConfigs.clickhouse_debians, *ArtifactConfigs.clickhouse_rpms,