@@ -99,28 +99,37 @@ generate_badge_json() {
99
99
local combined_key=" ${dj_ver} _${py_ver} "
100
100
# shellcheck disable=SC2155
101
101
local result=$( jq -r --arg key " $combined_key " ' .[$key]' " $result_file " )
102
- echo " Checking result for $combined_key : $result "
103
102
if [[ " $result " == " PASS" ]]; then
104
- python_compatible+=(" $py_ver " )
105
- django_compatible+=(" $dj_ver " )
103
+ # shellcheck disable=SC2076
104
+ if ! [[ " ${python_compatible[*]} " =~ " ${py_ver} " ]]; then
105
+ python_compatible+=(" $py_ver " )
106
+ fi
107
+ # shellcheck disable=SC2076
108
+ if ! [[ " ${django_compatible[*]} " =~ " ${dj_ver} " ]]; then
109
+ django_compatible+=(" $dj_ver " )
110
+ fi
106
111
fi
107
112
done
108
113
done
109
114
110
- echo " Python compatible versions: ${python_compatible[*]} "
111
- echo " Django compatible versions: ${django_compatible[*]} "
115
+ # Remove duplicates and sort versions
116
+ readarray -t unique_python_versions < <( printf ' %s\n' " ${python_compatible[@]} " | sort -uV)
117
+ readarray -t unique_django_versions < <( printf ' %s\n' " ${django_compatible[@]} " | sort -uV)
118
+
119
+ echo " Python compatible versions: ${unique_python_versions[*]} "
120
+ echo " Django compatible versions: ${unique_django_versions[*]} "
112
121
113
122
echo " {
114
123
\" schemaVersion\" : 1,
115
- \" label\" : \" python\" ,
116
- \" message\" : \" $( IFS=, ; echo " ${python_compatible [*]} " ) \" ,
124
+ \" label\" : \" compatible python\" ,
125
+ \" message\" : \" $( IFS=' | ' ; echo " ${unique_python_versions [*]} " ) \" ,
117
126
\" color\" : \" blue\"
118
127
}" > " python_compatible.json"
119
128
120
129
echo " {
121
130
\" schemaVersion\" : 1,
122
- \" label\" : \" django\" ,
123
- \" message\" : \" $( IFS=, ; echo " ${django_compatible [*]} " ) \" ,
131
+ \" label\" : \" compatible django\" ,
132
+ \" message\" : \" $( IFS=' | ' ; echo " ${unique_django_versions [*]} " ) \" ,
124
133
\" color\" : \" blue\"
125
134
}" > " django_compatible.json"
126
135
}
@@ -131,16 +140,17 @@ post_cleanup() {
131
140
132
141
echo " Removing docker images..."
133
142
# shellcheck disable=SC2155
134
- local dangling_images=$( docker images -q --filter " dangling=true" )
135
- if [ -n " $dangling_images " ]; then
136
- docker rmi " $dangling_images "
137
- fi
143
+ # local dangling_images=$(docker images -q --filter "dangling=true")
144
+ # if [ -n "$dangling_images" ]; then
145
+ # docker rmi "$dangling_images"
146
+ # fi
138
147
139
148
echo " Cleanup complete."
140
149
}
141
150
142
151
# Define directories and files
143
152
result_dir=" test_results"
153
+ post_cleanup # Clean up any previous test results
144
154
result_file=" ${result_dir} /results.json"
145
155
146
156
# Compatible Python versions for each Django version with prefixed keys
@@ -184,5 +194,6 @@ generate_markdown_table
184
194
echo " Compatibility matrix has been generated: compatibility_matrix.md"
185
195
echo " Generating compatibility badges..."
186
196
generate_badge_json
197
+ echo " Compatibility badges have been generated: python_compatible.json, django_compatible.json"
187
198
echo " Cleaning up..."
188
199
post_cleanup
0 commit comments