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]