This is an automated email from the ASF dual-hosted git repository.

philo-he pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten.git


The following commit(s) were added to refs/heads/main by this push:
     new 9e744e03f6 [GLUTEN-12743][CI] Let contributors trigger the Delta Spark 
UT with a /delta-test PR comment (#12781)
9e744e03f6 is described below

commit 9e744e03f64ba98bebd718070377f26b68e80036
Author: Felipe Pessoto <[email protected]>
AuthorDate: Mon Aug 24 12:42:57 2026 -0700

    [GLUTEN-12743][CI] Let contributors trigger the Delta Spark UT with a 
/delta-test PR comment (#12781)
---
 .github/workflows/delta_spark_ut.yml            | 60 +++++++++++++++++++++----
 .github/workflows/util/delta-spark-ut/README.md |  6 +++
 2 files changed, 58 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/delta_spark_ut.yml 
b/.github/workflows/delta_spark_ut.yml
index c0fc1211a5..97e897fcc2 100644
--- a/.github/workflows/delta_spark_ut.yml
+++ b/.github/workflows/delta_spark_ut.yml
@@ -60,6 +60,9 @@ on:
       # Negated patterns are evaluated in order and override the positives
       # above, so this must stay last.
       - '!.github/workflows/util/delta-spark-ut/**/*.md'
+  # Force a run skipped by `paths:` without requiring label permissions.
+  issue_comment:
+    types: [created]
   workflow_dispatch:
     inputs:
       delta_ref:
@@ -92,10 +95,17 @@ on:
   schedule:
     - cron: '0 5 * * *'
 
+# Comment runs execute PR code; keep the token read-only. Stash needs 
artifacts access.
+permissions:
+  contents: read
+  actions: read
+
 env:
   ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
   MVN_CMD: 'build/mvn -ntp'
   CCACHE_DIR: "${{ github.workspace }}/.ccache"
+  # `issue_comment` runs on the default branch, so explicitly select the PR 
merge ref.
+  DELTA_CHECKOUT_REF: ${{ github.event.issue.number && 
format('refs/pull/{0}/merge', github.event.issue.number) || '' }}
   # Gluten profile / bundle naming for the build-gluten-bundle and
   # delta-spark-test jobs. `spark_version` is the single source of truth for 
the
   # Spark version: it drives the Gluten bundle profile (-Pspark-<v>), the 
bundle
@@ -136,22 +146,48 @@ env:
   # granularity for the split to stay balanced.
   DELTA_NUM_SHARDS: '8'
 
-# Now that this is a standalone workflow (not called by velox_backend_x86.yml),
-# `github.workflow` resolves to THIS workflow, so a concurrency group is both 
safe
-# and necessary: without it every push to a PR branch stacks another full ~2.5 
h
-# Delta run instead of superseding the previous one. Keyed on the branch for 
PRs
-# and the sha otherwise, matching velox_backend_x86.yml's group.
+# Cancel older `pull_request` and `/delta-test` runs for the same PR.
 concurrency:
-  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  group: ${{ github.repository }}-${{ github.event.pull_request.number || 
github.event.issue.number || github.head_ref || github.sha }}-${{ 
github.workflow }}
   cancel-in-progress: true
 
 jobs:
+  delta-test-requested:
+    # Match `/delta-test` as the first token; pass other event types through.
+    if: >-
+      github.event_name != 'issue_comment' ||
+      (github.event.issue.pull_request &&
+       (github.event.comment.body == '/delta-test' ||
+        startsWith(github.event.comment.body, '/delta-test ') ||
+        startsWith(github.event.comment.body, format('/delta-test{0}', 
fromJSON('"\r"'))) ||
+        startsWith(github.event.comment.body, format('/delta-test{0}', 
fromJSON('"\n"')))))
+    runs-on: ubuntu-22.04
+    permissions:
+      pull-requests: write
+    steps:
+      - name: Acknowledge the request
+        if: ${{ github.event_name == 'issue_comment' }}
+        # The informational comment must not block the run.
+        continue-on-error: true
+        env:
+          GH_TOKEN: ${{ github.token }}
+          REPO: ${{ github.repository }}
+          PR_NUMBER: ${{ github.event.issue.number }}
+          TRIGGER_USER: ${{ github.event.comment.user.login }}
+          RUN_URL: ${{ github.server_url }}/${{ github.repository 
}}/actions/runs/${{ github.run_id }}
+        run: |
+          gh pr comment "$PR_NUMBER" --repo "$REPO" --body \
+            "🔄 Delta Spark UT started by @${TRIGGER_USER} (~2.5 h). [View 
run](${RUN_URL})"
+
   build-native-lib-centos-7:
+    needs: delta-test-requested
     # This workflow always builds its own native lib -- there is no caller to
     # provide one, and the `paths:` filter already decided whether the run 
happens.
     runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v4
+        with:
+          ref: ${{ env.DELTA_CHECKOUT_REF }}
       - name: Get Ccache from Apache Stash
         uses: 
apache/infrastructure-actions/stash/restore@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
@@ -172,7 +208,8 @@ jobs:
             ccache -s
           "
       - name: Save Ccache to Apache Stash
-        if: always()
+        # Comment runs use main's Stash scope; never overwrite it with PR 
output.
+        if: ${{ always() && github.event_name != 'issue_comment' }}
         uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: '${{ env.CCACHE_DIR }}'
@@ -190,6 +227,8 @@ jobs:
     container: apache/gluten:centos-9-jdk17
     steps:
       - uses: actions/checkout@v4
+        with:
+          ref: ${{ env.DELTA_CHECKOUT_REF }}
       - name: Download native artifacts
         uses: actions/download-artifact@v4
         with:
@@ -232,6 +271,7 @@ jobs:
             -Pbackends-velox -Pdelta \
             -DskipTests -Dmaven.compiler.release=17
       - name: Save Maven repository to Apache Stash
+        if: ${{ github.event_name != 'issue_comment' }}
         uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: /root/.m2/repository
@@ -282,6 +322,8 @@ jobs:
       SHARD_ID: ${{ matrix.shard }}
     steps:
       - uses: actions/checkout@v4
+        with:
+          ref: ${{ env.DELTA_CHECKOUT_REF }}
 
       - name: Resolve workflow inputs
         id: resolve
@@ -395,7 +437,7 @@ jobs:
       - name: Save sbt / Ivy / Coursier to Apache Stash
         # All shards have the same dependencies; one writer avoids matrix jobs
         # overwriting the same stash artifact.
-        if: ${{ success() && matrix.shard == 0 }}
+        if: ${{ success() && matrix.shard == 0 && github.event_name != 
'issue_comment' }}
         uses: 
apache/infrastructure-actions/stash/save@0ba14156c9f4c3cfbe4b0c9f36339ab0f8d81e53
         with:
           path: |
@@ -478,6 +520,8 @@ jobs:
     runs-on: ubuntu-22.04
     steps:
       - uses: actions/checkout@v4
+        with:
+          ref: ${{ env.DELTA_CHECKOUT_REF }}
       - name: Download per-shard gate lists
         uses: actions/download-artifact@v4
         continue-on-error: true
diff --git a/.github/workflows/util/delta-spark-ut/README.md 
b/.github/workflows/util/delta-spark-ut/README.md
index b3119d7d39..c836672937 100644
--- a/.github/workflows/util/delta-spark-ut/README.md
+++ b/.github/workflows/util/delta-spark-ut/README.md
@@ -103,6 +103,12 @@ longer shared between them, those PRs pay for the centos-7 
native build twice
   still caught daily. The nightly run enforces the baseline **and** fails on
   now-passing tests (`fail_on_fixed=true`), so baseline drift surfaces as a red
   nightly — the signal to refresh `known-failures.txt`.
+- **On demand, from a PR** — anyone can comment **`/delta-test`** as the first
+  token to run the default configuration against the PR merge ref. This covers
+  PRs skipped by `paths:` without requiring label permissions. The workflow
+  posts the run link on the PR and enforces the committed baseline. Comment 
runs
+  restore but never save main-scoped Stash caches; use `workflow_dispatch` for
+  custom inputs or baseline updates.
 - **Manually** — **Actions → Delta Spark UT (Gluten) → Run workflow**
   (`workflow_dispatch`), e.g. to refresh the baseline (see below). This is also
   how you validate a Velox/core change against Delta before merging: run it on


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to