@@ -111,6 +111,10 @@ jobs:
111111 # Uncomment and add tests as features become available
112112 ALL_TESTS='{
113113 "include": [
114+ {"test":"ic-small-opt-off",
115+ "make_configs":["src/test/regress:installcheck-small"],
116+ "pg_settings":{"optimizer":"off"}
117+ }
114118 ]
115119 }'
116120
@@ -351,7 +355,8 @@ jobs:
351355 --disable-orca \
352356 --disable-gpfdist \
353357 --with-pythonsrc-ext \
354- --with-gssapi
358+ --with-gssapi \
359+ --without-icu
355360 "; then
356361 echo "::error::Configure failed"
357362 exit 1
@@ -625,7 +630,8 @@ jobs:
625630 --disable-orca \
626631 --disable-gpfdist \
627632 --with-pythonsrc-ext \
628- --with-gssapi
633+ --with-gssapi \
634+ --without-icu
629635 " 2>&1 | tee -a ${LOGS_DIR}/details/configure.log
630636
631637 - name : Create gpdemo Cluster
@@ -636,6 +642,7 @@ jobs:
636642
637643 # Create demo cluster with specified number of segments
638644 su - gpadmin -c "
645+ cd ${SRC_DIR}
639646 source ${INSTALL_PREFIX}/greenplum_path.sh
640647 NUM_PRIMARY_MIRROR_PAIRS=${{ matrix.num_primary_mirror_pairs }} make create-demo-cluster
641648 " 2>&1 | tee -a ${LOGS_DIR}/details/cluster-creation.log
@@ -667,17 +674,19 @@ jobs:
667674 set -eo pipefail
668675
669676 # Run each make target from the test configuration
670- MAKE_CONFIGS='${{ toJson (matrix.make_configs) }}'
677+ MAKE_CONFIGS='${{ join (matrix.make_configs, ' ' ) }}'
671678
672679 su - gpadmin -c "
673680 source ${INSTALL_PREFIX}/greenplum_path.sh
674681 source ${SRC_DIR}/gpAux/gpdemo/gpdemo-env.sh
675682
683+ cd ${SRC_DIR}
684+
676685 echo '=== Running Tests for ${{ matrix.test }} ==='
677686 echo 'Make configurations: ${MAKE_CONFIGS}'
678687
679688 # Parse and run each make config
680- for config in \$(echo '$ {MAKE_CONFIGS}' | jq -r '.[]') ; do
689+ for config in $ {MAKE_CONFIGS}; do
681690 DIR=\$(echo \$config | cut -d: -f1)
682691 TARGET=\$(echo \$config | cut -d: -f2)
683692
@@ -713,6 +722,87 @@ jobs:
713722
714723 echo "Test results collected"
715724
725+ - name : Parse Test Results
726+ if : always()
727+ env :
728+ SRC_DIR : ${{ github.workspace }}
729+ run : |
730+ echo "=== Parsing Test Results for ${{ matrix.test }} ==="
731+
732+ # Find regression.out and parse results
733+ REGRESSION_OUT=$(find ${SRC_DIR} -name "regression.out" -type f | head -n 1)
734+
735+ if [[ -n "$REGRESSION_OUT" && -f "$REGRESSION_OUT" ]]; then
736+ echo "Found regression.out at: $REGRESSION_OUT"
737+ echo ""
738+ echo "=== Test Summary ==="
739+ # Extract the summary lines from regression.out
740+ grep -E "^(#|test |ok |FAILED|not ok)" "$REGRESSION_OUT" | tail -50 || true
741+ echo ""
742+
743+ # Count passed/failed tests
744+ TOTAL=$(grep -c "^test " "$REGRESSION_OUT" 2>/dev/null || echo "0")
745+ PASSED=$(grep -c "^ok " "$REGRESSION_OUT" 2>/dev/null || echo "0")
746+ FAILED=$(grep -c "^not ok\|FAILED" "$REGRESSION_OUT" 2>/dev/null || echo "0")
747+
748+ echo "=== Statistics ==="
749+ echo "Total tests: $TOTAL"
750+ echo "Passed: $PASSED"
751+ echo "Failed: $FAILED"
752+
753+ # Add to job summary
754+ {
755+ echo "### Test Results: ${{ matrix.test }}"
756+ echo "| Metric | Count |"
757+ echo "|--------|-------|"
758+ echo "| Total | $TOTAL |"
759+ echo "| Passed | $PASSED |"
760+ echo "| Failed | $FAILED |"
761+ } >> "$GITHUB_STEP_SUMMARY"
762+ else
763+ echo "No regression.out file found"
764+ fi
765+
766+ - name : Check and Display Regression Diffs
767+ if : always()
768+ env :
769+ SRC_DIR : ${{ github.workspace }}
770+ run : |
771+ echo "=== Checking for Regression Diffs ==="
772+
773+ # Search for regression.diffs recursively
774+ DIFF_FILES=$(find ${SRC_DIR} -type f -name "regression.diffs" 2>/dev/null)
775+
776+ if [[ -n "$DIFF_FILES" ]]; then
777+ echo "$DIFF_FILES" | while read -r diff_file; do
778+ if [[ -s "$diff_file" ]]; then
779+ echo ""
780+ echo "=========================================="
781+ echo "Found regression.diffs at: $diff_file"
782+ echo "=========================================="
783+ echo ""
784+ cat "$diff_file"
785+ echo ""
786+ echo "=========================================="
787+ fi
788+ done
789+
790+ # Add diff summary to job summary
791+ {
792+ echo ""
793+ echo "### Regression Diffs Found"
794+ echo "The following test differences were detected:"
795+ echo "\`\`\`"
796+ # Show first 100 lines of first diff file
797+ head -100 $(echo "$DIFF_FILES" | head -n 1) || true
798+ echo "\`\`\`"
799+ echo ""
800+ echo "*Full diffs available in uploaded artifacts*"
801+ } >> "$GITHUB_STEP_SUMMARY"
802+ else
803+ echo "No regression.diffs file found - all tests passed!"
804+ fi
805+
716806 - name : " Generate Test Job Summary End: ${{ matrix.test }}"
717807 if : always()
718808 run : |
@@ -730,6 +820,24 @@ jobs:
730820 name : test-logs-${{ matrix.test }}-${{ needs.build.outputs.build_timestamp }}
731821 path : |
732822 test-logs-${{ matrix.test }}/
823+ **/regression.out
824+ **/regression.diffs
825+ **/results/
826+ retention-days : ${{ env.LOG_RETENTION_DAYS }}
827+
828+ - name : Upload Regression Logs on Failure
829+ if : failure() || cancelled()
830+ uses : actions/upload-artifact@v4
831+ with :
832+ name : regression-logs-${{ matrix.test }}-${{ needs.build.outputs.build_timestamp }}
833+ path : |
834+ **/regression.out
835+ **/regression.diffs
836+ **/results/
837+ gpAux/gpdemo/datadirs/qddir/demoDataDir-1/log/
838+ gpAux/gpdemo/datadirs/dbfast1/demoDataDir0/log/
839+ gpAux/gpdemo/datadirs/dbfast2/demoDataDir1/log/
840+ gpAux/gpdemo/datadirs/dbfast3/demoDataDir2/log/
733841 retention-days : ${{ env.LOG_RETENTION_DAYS }}
734842
735843 # # ======================================================================
0 commit comments