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

djwang pushed a commit to branch cbdb-postgres-merge
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/cbdb-postgres-merge by this 
push:
     new e02c5a2dd34 Update pg16-merge-validation.yml (#1509)
e02c5a2dd34 is described below

commit e02c5a2dd348c70c574ed31dc2db1e7ffc94b8e5
Author: reshke <[email protected]>
AuthorDate: Tue Dec 30 18:42:26 2025 +0500

    Update pg16-merge-validation.yml (#1509)
    
    * Update pg16-merge-validation.yml
    * Update pg16-merge-validation.yml
    * Update pg16-merge-validation.yml: try to add --without-icu
    * Update pg16-merge-validation.yml
    * Update .github/workflows/pg16-merge-validation.yml
    * Use join instead of toJson to avoid jq cmd
    * Fix: cd to SRC_DIR before running make in tests
    * Add Parse Test Results and Check Regression Diffs steps
    ---------
    
    Co-authored-by: Dianjin Wang <[email protected]>
---
 .github/workflows/pg16-merge-validation.yml | 116 +++++++++++++++++++++++++++-
 1 file changed, 112 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/pg16-merge-validation.yml 
b/.github/workflows/pg16-merge-validation.yml
index 62f88c2b15b..db296a9c82e 100644
--- a/.github/workflows/pg16-merge-validation.yml
+++ b/.github/workflows/pg16-merge-validation.yml
@@ -111,6 +111,10 @@ jobs:
           # Uncomment and add tests as features become available
           ALL_TESTS='{
             "include": [
+              {"test":"ic-small-opt-off",
+                "make_configs":["src/test/regress:installcheck-small"],
+                "pg_settings":{"optimizer":"off"}
+              }
             ]
           }'
           
@@ -351,7 +355,8 @@ jobs:
                 --disable-orca \
                 --disable-gpfdist \
                 --with-pythonsrc-ext \
-                --with-gssapi
+                --with-gssapi \
+                --without-icu
             "; then
               echo "::error::Configure failed"
               exit 1
@@ -625,7 +630,8 @@ jobs:
               --disable-orca \
               --disable-gpfdist \
               --with-pythonsrc-ext \
-              --with-gssapi
+              --with-gssapi \
+              --without-icu 
           " 2>&1 | tee -a ${LOGS_DIR}/details/configure.log
 
       - name: Create gpdemo Cluster
@@ -636,6 +642,7 @@ jobs:
           
           # Create demo cluster with specified number of segments
           su - gpadmin -c "
+            cd ${SRC_DIR}
             source ${INSTALL_PREFIX}/greenplum_path.sh
             NUM_PRIMARY_MIRROR_PAIRS=${{ matrix.num_primary_mirror_pairs }} 
make create-demo-cluster
           " 2>&1 | tee -a ${LOGS_DIR}/details/cluster-creation.log
@@ -667,17 +674,19 @@ jobs:
           set -eo pipefail
 
           # Run each make target from the test configuration
-          MAKE_CONFIGS='${{ toJson(matrix.make_configs) }}'
+          MAKE_CONFIGS='${{ join(matrix.make_configs, ' ') }}'
           
           su - gpadmin -c "
             source ${INSTALL_PREFIX}/greenplum_path.sh
             source ${SRC_DIR}/gpAux/gpdemo/gpdemo-env.sh
             
+            cd ${SRC_DIR}
+            
             echo '=== Running Tests for ${{ matrix.test }} ==='
             echo 'Make configurations: ${MAKE_CONFIGS}'
             
             # Parse and run each make config
-            for config in \$(echo '${MAKE_CONFIGS}' | jq -r '.[]'); do
+            for config in ${MAKE_CONFIGS}; do
               DIR=\$(echo \$config | cut -d: -f1)
               TARGET=\$(echo \$config | cut -d: -f2)
               
@@ -713,6 +722,87 @@ jobs:
           
           echo "Test results collected"
 
+      - name: Parse Test Results
+        if: always()
+        env:
+          SRC_DIR: ${{ github.workspace }}
+        run: |
+          echo "=== Parsing Test Results for ${{ matrix.test }} ==="
+          
+          # Find regression.out and parse results
+          REGRESSION_OUT=$(find ${SRC_DIR} -name "regression.out" -type f | 
head -n 1)
+          
+          if [[ -n "$REGRESSION_OUT" && -f "$REGRESSION_OUT" ]]; then
+            echo "Found regression.out at: $REGRESSION_OUT"
+            echo ""
+            echo "=== Test Summary ==="
+            # Extract the summary lines from regression.out
+            grep -E "^(#|test |ok |FAILED|not ok)" "$REGRESSION_OUT" | tail 
-50 || true
+            echo ""
+            
+            # Count passed/failed tests
+            TOTAL=$(grep -c "^test " "$REGRESSION_OUT" 2>/dev/null || echo "0")
+            PASSED=$(grep -c "^ok " "$REGRESSION_OUT" 2>/dev/null || echo "0")
+            FAILED=$(grep -c "^not ok\|FAILED" "$REGRESSION_OUT" 2>/dev/null 
|| echo "0")
+            
+            echo "=== Statistics ==="
+            echo "Total tests: $TOTAL"
+            echo "Passed: $PASSED"
+            echo "Failed: $FAILED"
+            
+            # Add to job summary
+            {
+              echo "### Test Results: ${{ matrix.test }}"
+              echo "| Metric | Count |"
+              echo "|--------|-------|"
+              echo "| Total | $TOTAL |"
+              echo "| Passed | $PASSED |"
+              echo "| Failed | $FAILED |"
+            } >> "$GITHUB_STEP_SUMMARY"
+          else
+            echo "No regression.out file found"
+          fi
+
+      - name: Check and Display Regression Diffs
+        if: always()
+        env:
+          SRC_DIR: ${{ github.workspace }}
+        run: |
+          echo "=== Checking for Regression Diffs ==="
+          
+          # Search for regression.diffs recursively
+          DIFF_FILES=$(find ${SRC_DIR} -type f -name "regression.diffs" 
2>/dev/null)
+          
+          if [[ -n "$DIFF_FILES" ]]; then
+            echo "$DIFF_FILES" | while read -r diff_file; do
+              if [[ -s "$diff_file" ]]; then
+                echo ""
+                echo "=========================================="
+                echo "Found regression.diffs at: $diff_file"
+                echo "=========================================="
+                echo ""
+                cat "$diff_file"
+                echo ""
+                echo "=========================================="
+              fi
+            done
+            
+            # Add diff summary to job summary
+            {
+              echo ""
+              echo "### Regression Diffs Found"
+              echo "The following test differences were detected:"
+              echo "\`\`\`"
+              # Show first 100 lines of first diff file
+              head -100 $(echo "$DIFF_FILES" | head -n 1) || true
+              echo "\`\`\`"
+              echo ""
+              echo "*Full diffs available in uploaded artifacts*"
+            } >> "$GITHUB_STEP_SUMMARY"
+          else
+            echo "No regression.diffs file found - all tests passed!"
+          fi
+
       - name: "Generate Test Job Summary End: ${{ matrix.test }}"
         if: always()
         run: |
@@ -730,6 +820,24 @@ jobs:
           name: test-logs-${{ matrix.test }}-${{ 
needs.build.outputs.build_timestamp }}
           path: |
             test-logs-${{ matrix.test }}/
+            **/regression.out
+            **/regression.diffs
+            **/results/
+          retention-days: ${{ env.LOG_RETENTION_DAYS }}
+
+      - name: Upload Regression Logs on Failure
+        if: failure() || cancelled()
+        uses: actions/upload-artifact@v4
+        with:
+          name: regression-logs-${{ matrix.test }}-${{ 
needs.build.outputs.build_timestamp }}
+          path: |
+            **/regression.out
+            **/regression.diffs
+            **/results/
+            gpAux/gpdemo/datadirs/qddir/demoDataDir-1/log/
+            gpAux/gpdemo/datadirs/dbfast1/demoDataDir0/log/
+            gpAux/gpdemo/datadirs/dbfast2/demoDataDir1/log/
+            gpAux/gpdemo/datadirs/dbfast3/demoDataDir2/log/
           retention-days: ${{ env.LOG_RETENTION_DAYS }}
 
   ## ======================================================================


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

Reply via email to