From 68262b599abcaa8d8db8e7075f9a504dc8d433f2 Mon Sep 17 00:00:00 2001 From: Ranga Reddy Date: Fri, 24 Jul 2026 09:23:38 +0530 Subject: [PATCH 1/2] ci: add aggregate gate job for the spark-runtime matrix (branch-0.4) Add a spark-runtime-validation-required job that depends on the validate-spark-runtime-bundle matrix and passes only when every leg succeeds. This exposes a single stable status context so branch protection can require one check name instead of listing each Spark version (validate-spark-runtime-bundle (3.4.3) / (3.5.9)), which cannot use wildcards. Uses if: always() so the gate still reports (not skipped) when a matrix leg fails. --- .github/workflows/spark-runtime-validation.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/spark-runtime-validation.yml b/.github/workflows/spark-runtime-validation.yml index a817d0a5c..a5fed0864 100644 --- a/.github/workflows/spark-runtime-validation.yml +++ b/.github/workflows/spark-runtime-validation.yml @@ -91,3 +91,21 @@ jobs: env: SPARK_LOCAL_IP: "127.0.0.1" run: ./mvnw verify -ntp -B -pl xtable-spark-runtime + + # Single stable status context that aggregates every matrix leg, so branch + # protection can require one check name instead of listing each Spark version. + # `if: always()` is required: without it this job is skipped when a leg fails, + # and a skipped required check leaves the PR stuck on a pending status. + spark-runtime-validation-required: + needs: validate-spark-runtime-bundle + if: always() + runs-on: ubuntu-latest + steps: + - name: Require all spark-runtime matrix legs to pass + run: | + result="${{ needs.validate-spark-runtime-bundle.result }}" + echo "Aggregated validate-spark-runtime-bundle matrix result: ${result}" + if [[ "${result}" != "success" ]]; then + echo "One or more validate-spark-runtime-bundle matrix legs did not succeed." + exit 1 + fi From 61cc021317bce71b083b90a8486efc216ae16888 Mon Sep 17 00:00:00 2001 From: Ranga Reddy Date: Fri, 24 Jul 2026 09:43:16 +0530 Subject: [PATCH 2/2] ci: declare branch-0.4 required status checks in .asf.yaml Add a branch-0.4 protected_branches block requiring Maven CI Build, License Check and the new spark-runtime-validation-required gate context. Note: ASF applies .asf.yaml github settings only from the default branch (main), so this block documents branch-0.4's intended protection and takes effect through main's .asf.yaml rather than this file. --- .asf.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.asf.yaml b/.asf.yaml index 8aaedd4fe..c5bbd3b14 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -35,6 +35,17 @@ github: main: required_pull_request_reviews: required_approving_review_count: 1 + # NOTE: ASF applies these github settings only from the default branch's + # .asf.yaml (main), so this branch-0.4 block documents the intended + # protection but takes effect via main's .asf.yaml, not this file. + branch-0.4: + required_pull_request_reviews: + required_approving_review_count: 1 + required_status_checks: + contexts: + - "Maven CI Build" + - "License Check" + - "spark-runtime-validation-required" notifications: commits: commits@xtable.apache.org issues: commits@xtable.apache.org