Skip to content

Commit e02c5a2

Browse files
reshketuhaihe
andauthored
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]>
1 parent 4693c4a commit e02c5a2

File tree

1 file changed

+112
-4
lines changed

1 file changed

+112
-4
lines changed

.github/workflows/pg16-merge-validation.yml

Lines changed: 112 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)