diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2018-12-01 01:54:18 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2018-12-04 18:20:48 -0800 |
| commit | 15c1fc873ce25a73920d6141d3e7f85e37d89514 (patch) | |
| tree | 4f2cc411d6083cd488f9c4209e798eede00ee661 /tools/build_release_files.py | |
| parent | dbd3a77908343dd036ab1cd3b76b6fa4f9d85e8c (diff) | |
Add particle boards, fix cp32 and try to speed up atmel build
Diffstat (limited to 'tools/build_release_files.py')
| -rwxr-xr-x | tools/build_release_files.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tools/build_release_files.py b/tools/build_release_files.py new file mode 100755 index 000000000..a3b91c331 --- /dev/null +++ b/tools/build_release_files.py @@ -0,0 +1,76 @@ +import os +import sys +import subprocess +import shutil +import build_board_info as build_info +import time + +for port in build_info.SUPPORTED_PORTS: + result = subprocess.run("rm -rf ../ports/{}/build*".format(port), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) + +ROSIE_SETUPS = ["rosie-ci"] +rosie_ok = {} +for rosie in ROSIE_SETUPS: + rosie_ok[rosie] = True + +PARALLEL = "-j 5" +travis = False +if "TRAVIS" in os.environ and os.environ["TRAVIS"] == "true": + PARALLEL="-j 2" + travis = True + +all_boards = build_info.get_board_mapping() +build_boards = list(all_boards.keys()) +if "TRAVIS_BOARDS" in os.environ: + build_boards = os.environ["TRAVIS_BOARDS"].split() + +sha, version = build_info.get_version_info() + +languages = build_info.get_languages() +exit_status = 0 +for board in build_boards: + bin_directory = "../bin/{}/".format(board) + os.makedirs(bin_directory, exist_ok=True) + board_info = all_boards[board] + + for language in languages: + start_time = time.monotonic() + make_result = subprocess.run("make -C ../ports/" + board_info["port"] + " TRANSLATION=" + language + " BOARD=" + board, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + build_duration = time.monotonic() - start_time + success = "\033[32msucceeded\033[0m" + if make_result.returncode != 0: + exit_status = make_result.returncode + success = "\033[31mfailed\033[0m" + + other_output = "" + + for extension in board_info["extensions"]: + temp_filename = "../ports/{port}/build-{board}/firmware.{extension}".format(port=board_info["port"], board=board, extension=extension) + final_filename = "adafruit-circuitpython-{board}-{language}-{version}.{extension}".format(board=board, language=language, version=version, extension=extension) + final_filename = os.path.join(bin_directory, final_filename) + try: + shutil.copyfile(temp_filename, final_filename) + except FileNotFoundError: + other_output = "Cannot find file {}".format(temp_filename) + if exit_status == 0: + exit_status = 1 + + if travis: + print('travis_fold:start:adafruit-bins-{}-{}\\r'.format(language, board)) + print("Build {} for {} took {:.2f}s and {}".format(board, language, build_duration, success)) + if make_result.returncode != 0: + print(make_result.stdout.decode("utf-8")) + print(other_output) + # Only upload to Rosie if its a pull request. + if travis: + for rosie in ROSIE_SETUPS: + if not rosie_ok[rosie]: + break + print("Uploading to https://{rosie}.ngrok.io/upload/{sha}".format(rosie=rosie, sha=sha)) + #curl -F "file=@$final_filename" https://$rosie.ngrok.io/upload/$sha + if travis: + print('travis_fold:end:adafruit-bins-{}-{}\\r'.format(language, board)) + + print() + +sys.exit(exit_status) |
