Skip to content

Commit c851e85

Browse files
committed
add default feature in generate support matrices (#1026)
Signed-off-by: Teresa Chen <boe20211@gmail.com>
1 parent 4518de6 commit c851e85

File tree

1 file changed

+28
-27
lines changed

1 file changed

+28
-27
lines changed

.buildkite/scripts/generate_support_matrices.sh

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,6 @@ else
2929
echo "Warning: Default features file not found at ${DEFAULT_FEATURES_FILE}"
3030
fi
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-
4032
process_models() {
4133
for model in "${model_list[@]:-}"; do
4234
row="\"$model\""
@@ -52,37 +44,46 @@ process_models() {
5244
}
5345

5446
process_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

8182
if [ ${#model_list[@]} -gt 0 ]; then
8283
process_models
8384
fi
8485

85-
if [ ${#feature_list[@]} -gt 0 ]; then
86+
if [ ${#metadata_feature_list[@]} -gt 0 ] || [ ${#default_feature_list[@]} -gt 0 ]; then
8687
process_features
8788
fi
8889

0 commit comments

Comments
 (0)