Skip to content

Commit e7c9f9a

Browse files
committed
Merge branch 'ci/soc_config'
2 parents b859bdf + 80206fa commit e7c9f9a

File tree

20 files changed

+2366
-230
lines changed

20 files changed

+2366
-230
lines changed

.github/README.md

Lines changed: 1326 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
#!/bin/bash
2+
3+
#
4+
# Check if Official Variants Changed
5+
# This script determines if a workflow should run based on whether official variants were modified.
6+
#
7+
# Usage:
8+
# check_official_variants.sh <event_name> <target_list> <changed_files...>
9+
#
10+
# Arguments:
11+
# event_name: GitHub event name (pull_request, push, etc.)
12+
# target_list: Which target list to use (BUILD_TEST_TARGETS or IDF_COMPONENT_TARGETS)
13+
# changed_files: Space-separated list of changed files (all remaining arguments)
14+
#
15+
# Output:
16+
# Sets should_run=true or should_run=false to $GITHUB_OUTPUT
17+
#
18+
19+
set -e
20+
21+
# Source centralized SoC configuration
22+
SCRIPTS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
23+
source "${SCRIPTS_DIR}/socs_config.sh"
24+
25+
# Parse arguments
26+
EVENT_NAME="$1"
27+
TARGET_LIST="${2:-BUILD_TEST_TARGETS}"
28+
shift 2
29+
CHANGED_FILES="$*"
30+
31+
# Validate arguments
32+
if [ -z "$EVENT_NAME" ]; then
33+
echo "ERROR: event_name is required"
34+
exit 1
35+
fi
36+
37+
if [ -z "$CHANGED_FILES" ]; then
38+
echo "ERROR: changed_files is required"
39+
exit 1
40+
fi
41+
42+
# Select the appropriate target list
43+
case "$TARGET_LIST" in
44+
"BUILD_TEST_TARGETS")
45+
OFFICIAL_TARGETS=("${BUILD_TEST_TARGETS[@]}")
46+
;;
47+
"IDF_COMPONENT_TARGETS")
48+
OFFICIAL_TARGETS=("${IDF_COMPONENT_TARGETS[@]}")
49+
;;
50+
*)
51+
echo "ERROR: Invalid target_list: $TARGET_LIST (must be BUILD_TEST_TARGETS or IDF_COMPONENT_TARGETS)"
52+
exit 1
53+
;;
54+
esac
55+
56+
# Initialize result
57+
should_run="false"
58+
59+
# If not a PR, always run
60+
if [ "$EVENT_NAME" != "pull_request" ]; then
61+
should_run="true"
62+
echo "Not a PR, will run"
63+
else
64+
# Check each changed file
65+
for file in $CHANGED_FILES; do
66+
# Check if file is in variants/ directory
67+
if [[ "$file" == variants/* ]]; then
68+
# Extract variant name (first directory after variants/)
69+
variant=$(echo "$file" | cut -d'/' -f2)
70+
71+
# Check if this variant is in official targets
72+
for target in "${OFFICIAL_TARGETS[@]}"; do
73+
if [ "$variant" == "$target" ]; then
74+
should_run="true"
75+
echo "Official variant changed: $variant"
76+
break 2
77+
fi
78+
done
79+
fi
80+
done
81+
fi
82+
83+
# If no official variants changed, check if non-variant files changed
84+
if [ "$should_run" == "false" ]; then
85+
for file in $CHANGED_FILES; do
86+
if [[ "$file" != variants/* ]]; then
87+
should_run="true"
88+
echo "Non-variant file changed: $file"
89+
break
90+
fi
91+
done
92+
fi
93+
94+
# Output result
95+
if [ -n "$GITHUB_OUTPUT" ]; then
96+
echo "should_run=$should_run" >> "$GITHUB_OUTPUT"
97+
fi
98+
99+
if [ "$should_run" == "false" ]; then
100+
echo "Only non-official variants changed, skipping build"
101+
else
102+
echo "Will run workflow"
103+
fi
104+
105+
# Also output to stdout for easy testing
106+
echo "$should_run"
107+

.github/scripts/find_all_boards.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
#!/bin/bash
22

3+
# Source centralized SoC configuration
4+
SCRIPTS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5+
source "${SCRIPTS_DIR}/socs_config.sh"
6+
37
# Get all boards
48
boards_array=()
59

610
boards_list=$(grep '.tarch=' boards.txt)
711

812
while read -r line; do
913
board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1)
10-
# skip esp32c2 as we dont build libs for it
11-
if [ "$board_name" == "esp32c2" ] || [ "$board_name" == "esp32c61" ]; then
14+
# Skip SoCs that don't have pre-built libs
15+
if should_skip_lib_build "$board_name"; then
1216
echo "Skipping 'espressif:esp32:$board_name'"
1317
continue
1418
fi

.github/scripts/on-push.sh

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
set -e
44

5+
# Source centralized SoC configuration
6+
SCRIPTS_DIR_CONFIG="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7+
source "${SCRIPTS_DIR_CONFIG}/socs_config.sh"
8+
59
export ARDUINO_BUILD_DIR="$HOME/.arduino/build.tmp"
610

711
function build {
@@ -89,15 +93,10 @@ if [ "$BUILD_LOG" -eq 1 ]; then
8993
echo "{\"boards\": [" > "$sizes_file"
9094
fi
9195

92-
#build sketches for different targets
93-
build "esp32c5" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
94-
build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
95-
build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
96-
build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
97-
build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
98-
build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
99-
build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
100-
build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
96+
#build sketches for different targets (using centralized config)
97+
for target in "${BUILD_TEST_TARGETS[@]}"; do
98+
build "$target" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}"
99+
done
101100

102101
if [ "$BUILD_LOG" -eq 1 ]; then
103102
#remove last comma from the last JSON object

0 commit comments

Comments
 (0)