2929 echo " Warning: Default features file not found at ${DEFAULT_FEATURES_FILE} "
3030fi
3131
32- # Combine metadata features and default features into the final unique list
33- mapfile -t feature_list < <(
34- (
35- printf " %s\n" " ${metadata_feature_list[@]:- } "
36- printf " %s\n" " ${default_feature_list[@]:- } "
37- ) | sort -u | sed ' /^$/d'
38- )
39-
4032process_models () {
4133 for model in " ${model_list[@]:- } " ; do
4234 row=" \" $model \" "
@@ -52,37 +44,46 @@ process_models() {
5244}
5345
5446process_features () {
55- for feature in " ${feature_list[@]:- } " ; do
47+ local feature row stage result
48+ declare -A feature_rows
49+
50+ # Process default features
51+ for feature in " ${default_feature_list[@]:- } " ; do
52+ if [[ -z " $feature " ]]; then continue ; fi
5653 row=" \" $feature \" "
57- # Check if the current feature is in the default_feature_list
58- is_default_feature=false
59- for default_feat in " ${default_feature_list[@]:- } " ; do
60- if [[ " ${feature} " == " ${default_feat} " ]]; then
61- is_default_feature=true
62- break
63- fi
54+ for stage in " ${FEATURE_STAGES[@]} " ; do
55+ result=$( buildkite-agent meta-data get " ${feature} :${stage} " --default " ✅" )
56+ row=" $row ,$result "
57+ check_failure " $result "
6458 done
59+ feature_rows[" $feature " ]=" $row "
60+ done
61+
62+ # Process new/metadata features
63+ for feature in " ${metadata_feature_list[@]:- } " ; do
64+ if [[ -z " $feature " ]]; then continue ; fi
65+ if [[ -v feature_rows[" $feature " ] ]]; then
66+ continue
67+ fi
68+ row=" \" $feature \" "
6569 for stage in " ${FEATURE_STAGES[@]} " ; do
66- # Set the default value based on whether it's a default feature
67- local default_value=" N/A"
68- if [ " $is_default_feature " = true ]; then
69- default_value=" ✅"
70- fi
71- result=$( buildkite-agent meta-data get " ${feature} :${stage} " --default " ${default_value} " )
70+ result=$( buildkite-agent meta-data get " ${feature} :${stage} " --default " N/A" )
7271 row=" $row ,$result "
73- if [ " ${result} " != " ✅" ] && [ " ${result} " != " N/A" ] ; then
74- ANY_FAILED=true
75- fi
72+ check_failure " $result "
7673 done
77- echo " $row " >> " $feature_support_matrix_csv "
74+ feature_rows[ " $feature " ]= " $row "
7875 done
76+
77+ for row in " ${feature_rows[@]} " ; do
78+ echo " $row "
79+ done | sort -V >> " $feature_support_matrix_csv "
7980}
8081
8182if [ ${# model_list[@]} -gt 0 ]; then
8283 process_models
8384fi
8485
85- if [ ${# feature_list [@]} -gt 0 ]; then
86+ if [ ${# metadata_feature_list[@]} -gt 0 ] || [ ${ # default_feature_list [@]} -gt 0 ]; then
8687 process_features
8788fi
8889
0 commit comments