build most of adafruit samd boards

This commit is contained in:
hathach 2020-01-02 17:03:44 +07:00
parent 9d9b509084
commit c53c44331e
4 changed files with 17 additions and 17 deletions

View file

@ -7,7 +7,8 @@ jobs:
strategy:
fail-fast: false
matrix:
arduino-platform: ['metro_m0', 'metro_m4']
arduino-platform: ['metro_m0', 'hallowing', 'circuitplayground_m0',
'metro_m4', 'pybadge_m4', 'pygamer_m4', 'hallowing_m4', 'monster_m4sk', 'pyportal_m4', 'pyportal_titano']
runs-on: ubuntu-latest

View file

@ -8,23 +8,20 @@ all_warnings = False
exit_status = 0
success_count = 0
fail_count = 0
skip_count = 0
build_format = '| {:22} | {:30} | {:9} '
build_separator = '-' * 80
all_boards = [ 'metro_m0', 'metro_m4' ]
default_boards = [ 'metro_m0', 'metro_m4', 'circuitplayground_m0']
build_boards = []
# build all variants if input not existed
if len(sys.argv) > 1:
if (sys.argv[1] in all_boards):
build_boards.append(sys.argv[1])
else:
print('\033[31INTERNAL ERR\033[0m - invalid variant name "{}"'.format(sys.argv[1]))
sys.exit(-1)
build_boards.append(sys.argv[1])
else:
build_boards = all_boards
build_boards = default_boards
def errorOutputFilter(line):
if len(line) == 0:
@ -36,7 +33,7 @@ def errorOutputFilter(line):
def build_examples(variant):
global exit_status, success_count, fail_count, build_format, build_separator
global exit_status, success_count, fail_count, skip_count, build_format, build_separator
print('\n')
print(build_separator)
@ -50,12 +47,13 @@ def build_examples(variant):
for sketch in glob.iglob('libraries/**/*.ino', recursive=True):
start_time = time.monotonic()
# skip if example contains: ".skip" or ".skip.variant"
# however ".build.variant" file can overwrite ".skip", used to build a specific variant only
# Skip if contains: ".board.test.skip" or ".all.test.skip"
# Skip if not contains: ".board.test.only" for a specific board
sketchdir = os.path.dirname(sketch)
if ( (os.path.exists(sketchdir + '/.skip') or os.path.exists(sketchdir + '/.skip.' + variant)) and
not os.path.exists(sketchdir + '/.build.' + variant)):
success = "skipped"
if os.path.exists(sketchdir + '/.all.test.skip') or os.path.exists(sketchdir + '/.' + variant + '.test.skip'):
success = "\033[33mskipped\033[0m "
elif glob.glob(sketchdir+"/.*.test.only") and not os.path.exists(sketchdir + '/.build.' + variant):
success = "\033[33mskipped\033[0m "
else:
# TODO - preferably, would have STDERR show up in **both** STDOUT and STDERR.
# preferably, would use Python logging handler to get both distinct outputs and one merged output
@ -87,7 +85,7 @@ def build_examples(variant):
print((build_format + '| {:5.2f}s |').format(sketch.split(os.path.sep)[1], os.path.basename(sketch), success, build_duration))
if success != "skipped":
if success != "\033[33mskipped\033[0m ":
if build_result.returncode != 0:
print(build_result.stdout.decode("utf-8"))
if (build_result.stderr):
@ -95,7 +93,8 @@ def build_examples(variant):
if len(warningLines) != 0:
for line in warningLines:
print(line)
else:
skip_count += 1
build_time = time.monotonic()
@ -104,7 +103,7 @@ for board in build_boards:
print(build_separator)
build_time = time.monotonic() - build_time
print("Build Summary: {} \033[32msucceeded\033[0m, {} \033[31mfailed\033[0m and took {:.2f}s".format(success_count, fail_count, build_time))
print("Build Summary: {} \033[32msucceeded\033[0m, {} \033[31mfailed\033[0m, {} \033[33mskipped\033[0m and took {:.2f}s".format(success_count, fail_count, skip_count, build_time))
print(build_separator)
sys.exit(exit_status)