@@ -83,35 +83,38 @@ jobs:
8383 fail-fast : false
8484 matrix :
8585 fqbn :
86- # When editing this list, be sure to also edit file: board_list.txt
87- # The compile-all-examples.sh optionally takes a FQBN parameter to
88- # optionally compile all examples ONLY for the respective fully qualified board name.
89- # See https://github.com/wolfSSL/wolfssl-examples/blob/master/Arduino/sketches/board_list.txt
90-
91- - arduino:avr:ethernet
92- - arduino:avr:leonardoeth
93- - arduino:avr:mega
94- - arduino:avr:nano
95- - arduino:avr:uno
96- - arduino:avr:yun
97- - arduino:samd:mkr1000
98- - arduino:samd:mkrfox1200
86+ # Each matrix entry passes its FQBN to compile-all-examples.sh, which looks up
87+ # build settings for that single board in board_list.txt (fetched at runtime from
88+ # wolfssl-examples). When ADDING a board here, the FQBN must also exist in:
89+ # https://github.com/wolfSSL/wolfssl-examples/blob/master/Arduino/sketches/board_list.txt
90+ # Removing a board from this matrix does NOT require any wolfssl-examples change;
91+ # board_list.txt is the broader "supported boards" catalog, not the CI matrix.
92+ #
93+ # Matrix is intentionally trimmed: boards sharing a vendor:arch core also share
94+ # toolchain and headers, so additional boards in the same core mostly re-exercise
95+ # variant pin maps rather than wolfSSL code. Kept boards bracket the memory
96+ # envelope (uno=2KB RAM, mega=8KB RAM) and cover each distinct toolchain/ISA.
97+
98+ - arduino:avr:uno # smallest AVR (2KB RAM, 32KB flash)
99+ - arduino:avr:mega # largest AVR (8KB RAM, 256KB flash)
100+ - arduino:samd:mkr1000 # Cortex-M0+ representative
99101 - arduino:mbed_edge:edge_control
100- - arduino:mbed_portenta:envie_m7
101- - arduino:mbed_portenta:portenta_x8
102- - arduino:renesas_uno:unor4wifi
103- - arduino:sam:arduino_due_x
104- - arduino:samd:arduino_zero_native
105- - arduino:samd:tian
106- - esp32:esp32:esp32
107- - esp32:esp32:esp32s2
108- - esp32:esp32:esp32s3
109- - esp32:esp32:esp32c3
110- - esp32:esp32:esp32c6
111- - esp32:esp32:esp32h2
102+ - arduino:mbed_portenta:envie_m7 # Cortex-M7 Portenta
103+ - arduino:renesas_uno:unor4wifi # Renesas RA4M1
104+ - arduino:sam:arduino_due_x # Cortex-M3
105+ - esp32:esp32:esp32 # Xtensa LX6
106+ - esp32:esp32:esp32s3 # Xtensa LX7
107+ - esp32:esp32:esp32c3 # RISC-V representative
112108 - esp8266:esp8266:generic
113109 - teensy:avr:teensy40
114110
111+ # Dropped (redundant within same core):
112+ # arduino:avr:{ethernet,leonardoeth,nano,yun} - same toolchain as uno
113+ # arduino:samd:{mkrfox1200,arduino_zero_native,tian} - same toolchain as mkr1000
114+ # arduino:mbed_portenta:portenta_x8 - same core as envie_m7
115+ # esp32:esp32:esp32s2 - Xtensa LX7, covered by s3
116+ # esp32:esp32:{esp32c6,esp32h2} - RISC-V, covered by c3
117+ #
115118 # Not yet supported, not in standard library
116119 # - esp32:esp32:nano_nora
117120
@@ -193,8 +196,17 @@ jobs:
193196 # wait 10 minutes for big downloads (or use 0 for no limit)
194197 arduino-cli config set network.connection_timeout 600s
195198
196- arduino-cli config add board_manager.additional_urls https://www.pjrc.com/teensy/package_teensy_index.json
197- arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
199+ # Only add third-party board_manager URLs for matrix entries that actually need them.
200+ # arduino-cli re-reads every configured index on each invocation and fails the whole
201+ # step if any one is unreachable, so adding these unconditionally makes all jobs
202+ # depend on pjrc.com and esp8266.com -- a single outage there cascades into total
203+ # CI failure. Scope each URL to the one CORE_ID that uses it.
204+ if [ "$CORE_ID" = "teensy:avr" ]; then
205+ arduino-cli config add board_manager.additional_urls https://www.pjrc.com/teensy/package_teensy_index.json
206+ fi
207+ if [ "$CORE_ID" = "esp8266:esp8266" ]; then
208+ arduino-cli config add board_manager.additional_urls https://arduino.esp8266.com/stable/package_esp8266com_index.json
209+ fi
198210 arduino-cli core update-index
199211
200212 echo "CORE_ID: $CORE_ID"
0 commit comments