Skip to content

Commit c5e79f1

Browse files
committed
fix(ci): Chnage approach in listing the changed boards
1 parent 01789a7 commit c5e79f1

File tree

1 file changed

+12
-39
lines changed

1 file changed

+12
-39
lines changed

.github/scripts/find_new_boards.sh

+12-39
Original file line numberDiff line numberDiff line change
@@ -8,53 +8,27 @@ url="https://api.github.com/repos/$owner_repository/pulls/$pr_number/files"
88
echo $url
99

1010
# Get changes in boards.txt file from PR
11-
Patch=$(curl $url | jq -r '.[] | select(.filename == "boards.txt") | .patch ')
11+
Boards_modified_url=$(curl -s $url | jq -r '.[] | select(.filename == "boards.txt") | .raw_url')
1212

13-
# Extract only changed lines number and count
14-
substring_patch=$(echo "$Patch" | grep -o '@@[^@]*@@')
13+
# Echo the modified boards.txt file URL
14+
echo "Modified boards.txt file URL:"
15+
echo $Boards_modified_url
1516

16-
params_array=()
17+
# Compare boards.txt file in the repo with the modified file
18+
diff=$(diff -u boards.txt boards_pr.txt)
1719

18-
IFS=$'\n' read -d '' -ra params <<< $(echo "$substring_patch" | grep -oE '[-+][0-9]+,[0-9]+')
19-
20-
for param in "${params[@]}"
21-
do
22-
echo "The parameter is $param"
23-
params_array+=("$param")
24-
done
20+
# Extract added or modified lines (lines starting with '+' or '-')
21+
modified_lines=$(echo "$diff" | grep -E '^[+-][^+-]')
2522

2623
boards_array=()
2724
previous_board=""
2825
file="boards.txt"
2926

30-
# Loop through boards.txt file and extract all boards that were added
31-
for (( c=0; c<${#params_array[@]}; c+=2 ))
27+
# Extract board names from the modified lines, and add them to the boards_array
28+
while read -r line
3229
do
33-
deletion_count=$( echo "${params_array[c]}" | cut -d',' -f2 | cut -d' ' -f1 )
34-
addition_line=$( echo "${params_array[c+1]}" | cut -d'+' -f2 | cut -d',' -f1 )
35-
addition_count=$( echo "${params_array[c+1]}" | cut -d'+' -f2 | cut -d',' -f2 | cut -d' ' -f1 )
36-
addition_end=$(($addition_line+$addition_count))
37-
38-
addition_line=$(($addition_line + 3))
39-
addition_end=$(($addition_end - $deletion_count))
40-
41-
echo $addition_line
42-
echo $addition_end
43-
44-
i=0
45-
46-
while read -r line
47-
do
48-
i=$((i+1))
49-
if [ $i -lt $addition_line ]
50-
then
51-
continue
52-
elif [ $i -gt $addition_end ]
53-
then
54-
break
55-
fi
5630
board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1)
57-
if [ "$board_name" != "" ] && [ "$board_name" != "esp32_family" ]
31+
if [ "$board_name" != "" ] && [ "$board_name" != "+" ] && [ "$board_name" != "-" ] && [ "$board_name" != "esp32_family" ]
5832
then
5933
if [ "$board_name" != "$previous_board" ]
6034
then
@@ -63,8 +37,7 @@ do
6337
echo "Added 'espressif:esp32:$board_name' to array"
6438
fi
6539
fi
66-
done < "$file"
67-
done
40+
done <<< "$modified_lines"
6841

6942
# Create JSON like string with all boards found and pass it to env variable
7043
board_count=${#boards_array[@]}

0 commit comments

Comments
 (0)