sforkowany z mirror/meshtastic-firmware
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 extraapollo
rodzic
eeeb7c5080
commit
0afeba0c86
|
@ -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))
|
Ładowanie…
Reference in New Issue