Generate device matrix and add missing symbol (#556)
This commit is contained in:
committed by
GitHub
parent
d6ac070e30
commit
dbb96a891c
@@ -0,0 +1,57 @@
|
||||
import fnmatch
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
DEVICES_DIRECTORY = os.path.join(os.path.dirname(__file__), "..", "Devices")
|
||||
|
||||
IGNORE_LIST = {
|
||||
"simulator",
|
||||
"generic-*",
|
||||
}
|
||||
|
||||
|
||||
def is_ignored(device_id):
|
||||
return any(fnmatch.fnmatch(device_id, pattern) for pattern in IGNORE_LIST)
|
||||
|
||||
def read_properties_file(path):
|
||||
properties = {}
|
||||
with open(path, "r") as file:
|
||||
for line in file:
|
||||
stripped = line.strip()
|
||||
if not stripped or stripped.startswith("#"):
|
||||
continue
|
||||
key, sep, value = line.partition("=")
|
||||
if not sep:
|
||||
continue
|
||||
properties[key.strip()] = value.strip()
|
||||
return properties
|
||||
|
||||
def get_board_entries():
|
||||
boards = []
|
||||
for device_id in sorted(os.listdir(DEVICES_DIRECTORY)):
|
||||
if is_ignored(device_id):
|
||||
continue
|
||||
device_dir = os.path.join(DEVICES_DIRECTORY, device_id)
|
||||
properties_path = os.path.join(device_dir, "device.properties")
|
||||
if not os.path.isdir(device_dir) or not os.path.isfile(properties_path):
|
||||
continue
|
||||
properties = read_properties_file(properties_path)
|
||||
target = properties.get("hardware.target")
|
||||
if not target:
|
||||
sys.exit(f"ERROR: {properties_path} has no hardware.target property")
|
||||
boards.append({"id": device_id, "arch": target.lower()})
|
||||
return boards
|
||||
|
||||
def main():
|
||||
matrix_json = json.dumps({"board": get_board_entries()})
|
||||
|
||||
github_output = os.environ.get("GITHUB_OUTPUT")
|
||||
if github_output:
|
||||
with open(github_output, "a") as file:
|
||||
file.write(f"matrix={matrix_json}\n")
|
||||
else:
|
||||
print(matrix_json)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user