Skip to content

Commit 78cf171

Browse files
committed
ci(stm32variant): avoid wrong xml name
Issue was that if some variants files are the same but not all the xml name was added while it should not. Signed-off-by: Frederic Pillon <[email protected]>
1 parent 09ff3f6 commit 78cf171

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

Diff for: CI/update/stm32variant.py

+16-3
Original file line numberDiff line numberDiff line change
@@ -2033,13 +2033,16 @@ def aggregate_dir():
20332033
variant_exp = []
20342034
# Compare the first directory to all other directories
20352035
while mcu_dirs and index < len(mcu_dirs):
2036-
# Compare all the variant file except the generic_boards.txt
2036+
# Compare all the variant files except the generic_boards.txt
20372037
mcu_dir2_files_list = [
20382038
mcu_dirs[index] / periph_c_filename,
20392039
mcu_dirs[index] / pinvar_h_filename,
20402040
mcu_dirs[index] / variant_cpp_filename,
20412041
mcu_dirs[index] / variant_h_filename,
20422042
]
2043+
# Iterate over each variant files
2044+
periph_xml_tmp = []
2045+
variant_exp_tmp = []
20432046
for index2, fname in enumerate(mcu_dir1_files_list):
20442047
with open(fname, "r") as f1:
20452048
with open(mcu_dir2_files_list[index2], "r") as f2:
@@ -2048,20 +2051,30 @@ def aggregate_dir():
20482051
if not diff or len(diff) == 2:
20492052
if index2 == 0:
20502053
for line in diff:
2051-
periph_xml += periperalpins_regex.findall(line)
2054+
periph_xml_tmp += periperalpins_regex.findall(
2055+
line
2056+
)
20522057
elif index2 == 2:
20532058
for line in diff:
2054-
variant_exp += variant_regex.findall(line)
2059+
variant_exp_tmp += variant_regex.findall(line)
20552060
continue
20562061
else:
20572062
# Not the same directory compare with the next one
20582063
index += 1
20592064
break
20602065
# All files compared and matched
20612066
else:
2067+
# Concatenate lists without duplicate
2068+
uniq_periph_xml = set(periph_xml_tmp) - set(periph_xml)
2069+
periph_xml = periph_xml + list(uniq_periph_xml)
2070+
uniq_variant_exp = set(variant_exp_tmp) - set(variant_exp)
2071+
variant_exp = variant_exp + list(uniq_variant_exp)
20622072
# Matched files append to the group list
20632073
group_mcu_dir.append(mcu_dirs.pop(index))
2074+
del periph_xml_tmp[:]
2075+
del variant_exp_tmp[:]
20642076
del mcu_dir2_files_list[:]
2077+
20652078
# Merge directories name and contents if needed
20662079
mcu_dir = merge_dir(
20672080
out_temp_path, group_mcu_dir, mcu_family, periph_xml, variant_exp

0 commit comments

Comments
 (0)