generate dynamic device array for use in CI scripts

Usage: generate_ci_matrix.py platform [extra]
e.g. generate_ci_matrix.py esp32 or generate_ci_matrix.py esp32 extra
pull/2430/head
Thomas Göttgens 2023-04-11 20:10:54 +02:00
rodzic eeeb7c5080
commit 0afeba0c86
1 zmienionych plików z 33 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,33 @@
#!/usr/bin/env python
"""Generate the CI matrix"""
import os, sys, configparser, json
rootdir = 'variants/'
options = sys.argv[1:]
outlist=[]
if len(options) < 1:
print(json.dumps(outlist))
exit()
for subdir, dirs, files in os.walk(rootdir):
for file in files:
if file == 'platformio.ini':
config = configparser.ConfigParser()
config.read(subdir + '/' + file)
for c in config.sections():
if c.startswith('env:'):
section = config[c].name[4:]
if 'extends' in config[config[c].name]:
if config[config[c].name]['extends'] == options[0] + '_base':
if 'board_level' in config[config[c].name]:
if ((config[config[c].name]['board_level'] == 'extra') & ('extra' in options)):
outlist.append(section)
else:
outlist.append(section)
print(json.dumps(outlist))