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

espino pushed a commit to branch main-debugging
in repository https://gitbox.apache.org/repos/asf/cloudberry.git

commit ed238e12dc4426a9c40741af37b8fc49365eef2f
Author: Ed Espino <[email protected]>
AuthorDate: Thu Oct 2 23:59:04 2025 -0700

    CI: Add interactive debug shell to build workflow
    
    Add tmate-based interactive debugging capability to the build workflow,
    allowing developers to SSH into the test environment before test execution.
    
    Features:
    - Manual trigger via workflow_dispatch input (enable_debug_shell)
    - Automatic trigger via PR label (ci:debug)
    - Configurable timeout (default 30 minutes, max 360)
    - Limited access to workflow actor for security
---
 .github/workflows/build-cloudberry.yml | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/.github/workflows/build-cloudberry.yml 
b/.github/workflows/build-cloudberry.yml
index fecd44a9637..ad0ad45983d 100644
--- a/.github/workflows/build-cloudberry.yml
+++ b/.github/workflows/build-cloudberry.yml
@@ -113,6 +113,16 @@ on:
         required: false
         default: 'all'
         type: string
+      enable_debug_shell:
+        description: 'Enable interactive debug shell (tmate) before running 
tests'
+        required: false
+        default: false
+        type: boolean
+      debug_timeout_minutes:
+        description: 'Debug shell timeout in minutes (default: 30, max: 360)'
+        required: false
+        default: '30'
+        type: string
 
 concurrency:
   group: ${{ github.workflow }}-${{ github.ref }}
@@ -1241,6 +1251,17 @@ jobs:
 
           } 2>&1 | tee -a build-logs/details/create-cloudberry-demo-cluster.log
 
+      - name: Setup debug shell (tmate)
+        if: |
+          (github.event.inputs.enable_debug_shell == 'true' ||
+           contains(github.event.pull_request.labels.*.name, 'ci:debug')) &&
+          needs.check-skip.outputs.should_skip != 'true'
+        uses: mxschmitt/action-tmate@v3
+        timeout-minutes: ${{ 
fromJSON(github.event.inputs.debug_timeout_minutes || '30') }}
+        with:
+          limit-access-to-actor: true
+          detached: false
+
       - name: "Run Tests: ${{ matrix.test }}"
         if: success() && needs.check-skip.outputs.should_skip != 'true'
         env:


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

Reply via email to