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

davidzollo pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new f9b1b330f1 [Feature][CI] Introduce Merge Queue to Keep the dev 
Baseline Stable (#11963)
f9b1b330f1 is described below

commit f9b1b330f19687295970e586bac5acff5e323bb6
Author: zhiwei.niu <[email protected]>
AuthorDate: Wed Aug 26 11:52:33 2026 +0800

    [Feature][CI] Introduce Merge Queue to Keep the dev Baseline Stable (#11963)
---
 .asf.yaml                         | 22 +++++++++++++
 .github/workflows/build_main.yml  |  4 +--
 .github/workflows/merge_queue.yml | 67 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 2 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index e7caebe859..6986e38ef6 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -50,6 +50,28 @@ github:
     rebase: false
   pull_requests:
     allow_update_branch: true
+  rulesets:
+    - name: Merge Queue
+      target: branch
+      enforcement: active
+      bypass_actors: []
+      conditions:
+        ref_name:
+          include:
+            - refs/heads/dev
+          exclude: []
+      rules:
+        - type: merge_queue
+          parameters:
+            # Leave time for runner scheduling and status reporting around the 
30-minute job.
+            check_response_timeout_minutes: 45
+            grouping_strategy: ALLGREEN
+            max_entries_to_build: 5
+            # Phase one merges each PR immediately instead of waiting to form 
a batch.
+            max_entries_to_merge: 1
+            merge_method: SQUASH
+            min_entries_to_merge: 1
+            min_entries_to_merge_wait_minutes: 0
   protected_branches:
     dev:
       required_status_checks:
diff --git a/.github/workflows/build_main.yml b/.github/workflows/build_main.yml
index d5110c50a4..d46ec4ad26 100644
--- a/.github/workflows/build_main.yml
+++ b/.github/workflows/build_main.yml
@@ -21,8 +21,8 @@ name: "Build"
 
 on:
   push:
-    branches:
-    - '**'
+    branches-ignore:
+      - 'gh-readonly-queue/**'
 
 jobs:
   call-build-and-test:
diff --git a/.github/workflows/merge_queue.yml 
b/.github/workflows/merge_queue.yml
new file mode 100644
index 0000000000..17505af636
--- /dev/null
+++ b/.github/workflows/merge_queue.yml
@@ -0,0 +1,67 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: Merge Queue
+
+on:
+  merge_group:
+    types: [checks_requested]
+
+permissions:
+  contents: read
+
+jobs:
+  merge-queue-build:
+    # Reuse the required "Build" context that pull requests already report.
+    # Required checks are shared by pull requests and merge groups.
+    name: Build
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+      - name: Checkout merge group
+        uses: actions/checkout@v4
+      - name: Set up JDK 8
+        uses: actions/setup-java@v4
+        with:
+          distribution: temurin
+          java-version: '8'
+          cache: maven
+      # Compile the standard modules with the CI profile.
+      - name: Compile main and test sources
+        uses: nick-fields/retry@v3
+        with:
+          timeout_minutes: 28
+          max_attempts: 3
+          retry_wait_seconds: 10
+          retry_on: error
+          command: |
+            ./mvnw -B -T 1C -Pci clean install -DskipTests \
+              -D"license.skipAddThirdParty"=true -D"skip.ui"=true \
+              --no-snapshot-updates
+      # Build the opt-in seatunnel-benchmarks module with its dedicated 
profile.
+      - name: Compile benchmark main and test sources
+        uses: nick-fields/retry@v3
+        with:
+          timeout_minutes: 8
+          max_attempts: 3
+          retry_wait_seconds: 10
+          retry_on: error
+          command: |
+            ./mvnw -B -Pbenchmark -pl seatunnel-benchmarks clean install 
-DskipTests \
+              -D"license.skipAddThirdParty"=true --no-snapshot-updates

Reply via email to