Skip to content

Commit 86f9030

Browse files
author
liushengsong
committed
Add other test case for CI
1 parent 3fabc83 commit 86f9030

1 file changed

Lines changed: 163 additions & 87 deletions

File tree

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

Lines changed: 163 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -112,51 +112,124 @@ jobs:
112112
ALL_TESTS='{
113113
"include": [
114114
{"test":"ic-good-opt-off",
115-
"make_configs":["src/test/regress:installcheck-good"],
116-
"pg_settings":{"optimizer":"off"}
115+
"make_configs":["src/test/regress:installcheck-good"],
116+
"pg_settings":{"optimizer":"off"}
117117
},
118-
{"test":"ic-isolation2-basic",
119-
"make_configs":["src/test/isolation2:installcheck-isolation2"],
120-
"pg_settings":{"optimizer":"off"},
118+
{"test":"ic-good-opt-on",
119+
"make_configs":["src/test/regress:installcheck-good"],
120+
"pg_settings":{"optimizer":"on"}
121+
},
122+
{"test":"pax-ic-good-opt-off",
123+
"make_configs":[
124+
"contrib/pax_storage/:pax-test",
125+
"contrib/pax_storage/:regress_test"
126+
],
127+
"pg_settings":{
128+
"optimizer":"off",
129+
"default_table_access_method":"pax"
130+
}
131+
},
132+
{"test":"pax-ic-good-opt-on",
133+
"make_configs":[
134+
"contrib/pax_storage/:pax-test",
135+
"contrib/pax_storage/:regress_test"
136+
],
137+
"pg_settings":{
138+
"optimizer":"on",
139+
"default_table_access_method":"pax"
140+
}
141+
},
142+
{"test":"pax-ic-isolation2-opt-off",
143+
"make_configs":["contrib/pax_storage/:isolation2_test"],
144+
"pg_settings":{
145+
"optimizer":"off",
146+
"default_table_access_method":"pax"
147+
},
121148
"enable_core_check":false
149+
},
150+
{"test":"pax-ic-isolation2-opt-on",
151+
"make_configs":["contrib/pax_storage/:isolation2_test"],
152+
"pg_settings":{
153+
"optimizer":"on",
154+
"default_table_access_method":"pax"
155+
},
156+
"enable_core_check":false
157+
},
158+
{"test":"ic-expandshrink",
159+
"make_configs":["src/test/isolation2:installcheck-expandshrink"]
160+
},
161+
{"test":"ic-singlenode",
162+
"make_configs":["src/test/isolation:installcheck-singlenode",
163+
"src/test/singlenode_regress:installcheck-singlenode",
164+
"src/test/singlenode_isolation2:installcheck-singlenode"],
165+
"num_primary_mirror_pairs":0
166+
},
167+
{"test":"ic-resgroup-v2",
168+
"make_configs":["src/test/isolation2:installcheck-resgroup-v2"],
169+
"enable_cgroups":true
170+
},
171+
{"test":"ic-contrib",
172+
"make_configs":["contrib/auto_explain:installcheck",
173+
"contrib/amcheck:installcheck",
174+
"contrib/citext:installcheck",
175+
"contrib/btree_gin:installcheck",
176+
"contrib/btree_gist:installcheck",
177+
"contrib/dblink:installcheck",
178+
"contrib/dict_int:installcheck",
179+
"contrib/dict_xsyn:installcheck",
180+
"contrib/extprotocol:installcheck",
181+
"contrib/file_fdw:installcheck",
182+
"contrib/formatter_fixedwidth:installcheck",
183+
"contrib/hstore:installcheck",
184+
"contrib/indexscan:installcheck",
185+
"contrib/pg_trgm:installcheck",
186+
"contrib/indexscan:installcheck",
187+
"contrib/pgcrypto:installcheck",
188+
"contrib/pgstattuple:installcheck",
189+
"contrib/tablefunc:installcheck",
190+
"contrib/passwordcheck:installcheck",
191+
"contrib/pg_buffercache:installcheck",
192+
"contrib/sslinfo:installcheck"]
193+
},
194+
{"test":"ic-gpcontrib",
195+
"make_configs":["gpcontrib/orafce:installcheck",
196+
"gpcontrib/zstd:installcheck",
197+
"gpcontrib/gp_sparse_vector:installcheck",
198+
"gpcontrib/gp_toolkit:installcheck",
199+
"gpcontrib/gp_exttable_fdw:installcheck"]
200+
},
201+
{"test":"ic-fixme",
202+
"make_configs":["src/test/regress:installcheck-fixme"],
203+
"enable_core_check":false
204+
},
205+
{"test":"ic-isolation2-opt-on",
206+
"make_configs":["src/test/isolation2:installcheck-isolation2"],
207+
"pg_settings":{"optimizer":"on"}
208+
},
209+
{"test":"ic-isolation2-opt-off",
210+
"make_configs":["src/test/isolation2:installcheck-isolation2"],
211+
"pg_settings":{"optimizer":"off"}
212+
},
213+
{"test":"ic-isolation2-hot-standby",
214+
"make_configs":["src/test/isolation2:installcheck-hot-standby"]
215+
},
216+
{"test":"ic-isolation2-crash",
217+
"make_configs":["src/test/isolation2:installcheck-isolation2-crash"],
218+
"enable_core_check":false
219+
},
220+
{"test":"ic-parallel-retrieve-cursor",
221+
"make_configs":["src/test/isolation2:installcheck-parallel-retrieve-cursor"]
222+
},
223+
{"test":"ic-cbdb-parallel",
224+
"make_configs":["src/test/regress:installcheck-cbdb-parallel"]
225+
},
226+
{"test":"ic-recovery",
227+
"make_configs":["src/test/recovery:installcheck"],
228+
"enable_core_check":false
122229
}
123230
]
124231
}'
125232
126-
# Tests to be added as PG16 support improves:
127-
# - ic-good-opt-off: Basic installcheck with optimizer off (includes greenplum_schedule)
128-
# {"test":"ic-good-opt-off",
129-
# "make_configs":["src/test/regress:installcheck-good"],
130-
# "pg_settings":{"optimizer":"off"}
131-
# }
132-
#
133-
# - ic-good-opt-on: Basic installcheck with optimizer on (requires ORCA)
134-
# {"test":"ic-good-opt-on",
135-
# "make_configs":["src/test/regress:installcheck-good"],
136-
# "pg_settings":{"optimizer":"on"}
137-
# }
138-
#
139-
# - ic-contrib: Contrib module tests
140-
# {"test":"ic-contrib",
141-
# "make_configs":["contrib/auto_explain:installcheck",
142-
# "contrib/citext:installcheck"]
143-
# }
144-
#
145-
# - ic-gpcontrib: GPContrib module tests
146-
# {"test":"ic-gpcontrib",
147-
# "make_configs":["gpcontrib/orafce:installcheck",
148-
# "gpcontrib/gp_toolkit:installcheck"]
149-
# }
150-
#
151-
# - ic-isolation2-advanced: More isolation2 tests
152-
# {"test":"ic-isolation2-expandshrink",
153-
# "make_configs":["src/test/isolation2:installcheck-expandshrink"]
154-
# }
155-
# {"test":"ic-isolation2-crash",
156-
# "make_configs":["src/test/isolation2:installcheck-isolation2-crash"],
157-
# "enable_core_check":false
158-
# }
159-
160233
# Function to apply defaults to test configurations
161234
apply_defaults() {
162235
echo "$1" | jq --arg npm "$DEFAULT_NUM_PRIMARY_MIRROR_PAIRS" \
@@ -354,6 +427,7 @@ jobs:
354427
--prefix=${INSTALL_PREFIX} \
355428
--with-pgport=5432 \
356429
--enable-cassert \
430+
--enable-pax \
357431
--with-perl \
358432
--with-python \
359433
--with-libxml \
@@ -391,6 +465,10 @@ jobs:
391465
export LD_LIBRARY_PATH=${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}
392466
make -j$(nproc)
393467
make -j$(nproc) install
468+
make -j$(nproc) -C ./contrib/
469+
make -j$(nproc) -C ./gpcontrib/
470+
make -j$(nproc) install -C ./contrib/
471+
make -j$(nproc) install -C ./gpcontrib/
394472
"; then
395473
echo "::error::Build and installation failed"
396474
exit 1
@@ -629,6 +707,7 @@ jobs:
629707
--prefix=${INSTALL_PREFIX} \
630708
--with-pgport=5432 \
631709
--enable-cassert \
710+
--enable-pax \
632711
--with-perl \
633712
--with-python \
634713
--with-libxml \
@@ -656,62 +735,59 @@ jobs:
656735
NUM_PRIMARY_MIRROR_PAIRS=${{ matrix.num_primary_mirror_pairs }} make create-demo-cluster
657736
" 2>&1 | tee -a ${LOGS_DIR}/details/cluster-creation.log
658737
659-
- name: Configure PostgreSQL Settings
738+
- name: Run Tests
660739
env:
661740
SRC_DIR: ${{ github.workspace }}
662741
run: |
663742
set -eo pipefail
664743
665-
# Apply PostgreSQL settings from matrix configuration
666-
su - gpadmin -c "
667-
source ${INSTALL_PREFIX}/greenplum_path.sh
668-
source ${SRC_DIR}/gpAux/gpdemo/gpdemo-env.sh
669-
670-
# Set optimizer if specified
671-
OPTIMIZER='${{ matrix.pg_settings.optimizer }}'
672-
if [ -n \"\$OPTIMIZER\" ]; then
673-
echo \"Setting optimizer to: \$OPTIMIZER\"
674-
gpconfig -c optimizer -v \$OPTIMIZER
675-
gpstop -u
744+
# Build PGOPTIONS from matrix pg_settings
745+
PG_OPTS=""
746+
if [[ "${{ matrix.pg_settings.optimizer != '' }}" == "true" ]]; then
747+
PG_OPTS="$PG_OPTS -c optimizer=${{ matrix.pg_settings.optimizer }}"
748+
fi
749+
if [[ "${{ matrix.pg_settings.default_table_access_method != '' }}" == "true" ]]; then
750+
PG_OPTS="$PG_OPTS -c default_table_access_method=${{ matrix.pg_settings.default_table_access_method }}"
751+
fi
752+
753+
# Read configs into array
754+
IFS=' ' read -r -a configs <<< "${{ join(matrix.make_configs, ' ') }}"
755+
756+
echo "=== Starting test execution for ${{ matrix.test }} ==="
757+
echo "Number of configurations to execute: ${#configs[@]}"
758+
echo "PGOPTIONS: ${PG_OPTS}"
759+
echo ""
760+
761+
overall_status=0
762+
763+
for ((i=0; i<${#configs[@]}; i++)); do
764+
config="${configs[$i]}"
765+
IFS=':' read -r dir target <<< "$config"
766+
767+
echo "=== Executing configuration $((i+1))/${#configs[@]} ==="
768+
echo "Make command: make -C $dir $target"
769+
770+
config_log="${LOGS_DIR}/details/make-${{ matrix.test }}-config$i.log"
771+
772+
if ! su - gpadmin -c "
773+
source ${INSTALL_PREFIX}/greenplum_path.sh
774+
source ${SRC_DIR}/gpAux/gpdemo/gpdemo-env.sh
775+
make -C ${SRC_DIR}/src/test/regress
776+
cd ${SRC_DIR}
777+
PGOPTIONS='${PG_OPTS}' make -C $dir $target
778+
" 2>&1 | tee "$config_log"; then
779+
echo "::warning::Test execution failed for configuration $((i+1)): make -C $dir $target"
780+
overall_status=1
676781
fi
677-
" 2>&1 | tee -a ${LOGS_DIR}/details/pg-settings.log
782+
done
678783
679-
- name: Run Tests
680-
env:
681-
SRC_DIR: ${{ github.workspace }}
682-
run: |
683-
set -eo pipefail
784+
if [ "$overall_status" -ne 0 ]; then
785+
echo "::error::One or more test configurations failed for ${{ matrix.test }}"
786+
exit 1
787+
fi
684788
685-
# Run each make target from the test configuration
686-
MAKE_CONFIGS='${{ join(matrix.make_configs, ' ') }}'
687-
688-
su - gpadmin -c "
689-
source ${INSTALL_PREFIX}/greenplum_path.sh
690-
source ${SRC_DIR}/gpAux/gpdemo/gpdemo-env.sh
691-
692-
cd ${SRC_DIR}
693-
694-
echo '=== Running Tests for ${{ matrix.test }} ==='
695-
echo 'Make configurations: ${MAKE_CONFIGS}'
696-
697-
# Parse and run each make config
698-
for config in ${MAKE_CONFIGS}; do
699-
DIR=\$(echo \$config | cut -d: -f1)
700-
TARGET=\$(echo \$config | cut -d: -f2)
701-
702-
echo \"\"
703-
echo \"Running: make -C \$DIR \$TARGET\"
704-
echo \"\"
705-
706-
if ! make -C \$DIR \$TARGET; then
707-
echo \"::error::Test failed: \$DIR:\$TARGET\"
708-
exit 1
709-
fi
710-
done
711-
712-
echo \"\"
713-
echo \"All tests completed successfully\"
714-
" 2>&1 | tee -a ${LOGS_DIR}/details/test-run.log
789+
echo ""
790+
echo "All tests completed successfully"
715791
716792
- name: Collect Test Results
717793
if: always()

0 commit comments

Comments
 (0)