tools/autobuild/build-downloads.py: Verify standard features.
Defines the list of standard features and ensures that each board.json only uses those ones. This list can be extended, but needs to be a deliberate decision. This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
parent
cf32c2feb5
commit
88ecc78eb3
|
@ -5,6 +5,42 @@ import json
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
VALID_FEATURES = {
|
||||||
|
# Connectivity
|
||||||
|
"BLE",
|
||||||
|
"CAN",
|
||||||
|
"Ethernet",
|
||||||
|
"LoRa",
|
||||||
|
"USB",
|
||||||
|
"USB-C",
|
||||||
|
"WiFi",
|
||||||
|
# MCU features
|
||||||
|
"Dual-core",
|
||||||
|
"External Flash",
|
||||||
|
"External RAM",
|
||||||
|
# Form factor
|
||||||
|
"Feather",
|
||||||
|
# Connectors / sockets
|
||||||
|
"JST-PH",
|
||||||
|
"JST-SH",
|
||||||
|
"mikroBUS",
|
||||||
|
"microSD",
|
||||||
|
"SDCard",
|
||||||
|
# Sensors
|
||||||
|
"Environment Sensor",
|
||||||
|
"IMU",
|
||||||
|
# Other
|
||||||
|
"Audio Codec",
|
||||||
|
"Battery Charging",
|
||||||
|
"Camera",
|
||||||
|
"DAC",
|
||||||
|
"Display",
|
||||||
|
"Microphone",
|
||||||
|
"PoE",
|
||||||
|
"RGB LED",
|
||||||
|
"Secure Element",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def main(repo_path, output_path):
|
def main(repo_path, output_path):
|
||||||
boards_index = []
|
boards_index = []
|
||||||
|
@ -19,6 +55,16 @@ def main(repo_path, output_path):
|
||||||
with open(board_json, "r") as f:
|
with open(board_json, "r") as f:
|
||||||
blob = json.load(f)
|
blob = json.load(f)
|
||||||
|
|
||||||
|
features = set(blob.get("features", []))
|
||||||
|
if not features.issubset(VALID_FEATURES):
|
||||||
|
print(
|
||||||
|
board_json,
|
||||||
|
"unknown features:",
|
||||||
|
features.difference(VALID_FEATURES),
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
# Use "id" if specified, otherwise default to board dir (e.g. "PYBV11").
|
# Use "id" if specified, otherwise default to board dir (e.g. "PYBV11").
|
||||||
# We allow boards to override ID for the historical build names.
|
# We allow boards to override ID for the historical build names.
|
||||||
blob["id"] = blob.get("id", os.path.basename(board_dir))
|
blob["id"] = blob.get("id", os.path.basename(board_dir))
|
||||||
|
|
Loading…
Reference in New Issue