diff --git a/tools/build_board_info.py b/tools/build_board_info.py index b09b29effe..307d90d7aa 100644 --- a/tools/build_board_info.py +++ b/tools/build_board_info.py @@ -42,6 +42,12 @@ extension_by_board = { "pca10059": BIN_UF2 } +aliases_by_board = { + "circuitplayground_express": ["circuitplayground_express_4h", "circuitplayground_express_digikey_pycon2019"], + "gemma_m0": ["gemma_m0_pycon2018"], + "pewpew10": ["pewpew13"] +} + def get_languages(): languages = [] for f in os.scandir("../locale"): @@ -59,7 +65,17 @@ def get_board_mapping(): board_id = board_path.name extensions = extension_by_port[port] extensions = extension_by_board.get(board_path.name, extensions) - boards[board_id] = {"port": port, "extensions": extensions, "download_count": 0} + aliases = aliases_by_board.get(board_path.name, []) + boards[board_id] = {"port": port, + "extensions": extensions, + "download_count": 0, + "aliases": aliases} + for alias in aliases: + boards[alias] = {"port": port, + "extensions": extensions, + "download_count": 0, + "alias": True, + "aliases": []} return boards def get_version_info(): @@ -235,23 +251,25 @@ def generate_download_info(): board_id = board_path.name board_info = board_mapping[board_id] - if board_id not in current_info: - changes["new_boards"].append(board_id) - current_info[board_id] = {"downloads": 0, - "versions": []} + for alias in [board_id] + board_info["aliases"]: + alias_info = board_mapping[alias] + if alias not in current_info: + changes["new_boards"].append(alias) + current_info[alias] = {"downloads": 0, + "versions": []} - new_version = { - "stable": new_stable, - "version": new_tag, - "files": {} - } - for language in languages: - files = [] - new_version["files"][language] = files - for extension in board_info["extensions"]: - files.append("https://github.com/adafruit/circuitpython/releases/download/{tag}/adafruit-circuitpython-{board}-{language}-{tag}.{extension}".format(tag=new_tag, board=board_id, language=language, extension=extension)) - current_info[board_id]["downloads"] = board_info["download_count"] - current_info[board_id]["versions"].append(new_version) + new_version = { + "stable": new_stable, + "version": new_tag, + "files": {} + } + for language in languages: + files = [] + new_version["files"][language] = files + for extension in board_info["extensions"]: + files.append("https://github.com/adafruit/circuitpython/releases/download/{tag}/adafruit-circuitpython-{alias}-{language}-{tag}.{extension}".format(tag=new_tag, alias=alias, language=language, extension=extension)) + current_info[alias]["downloads"] = alias_info["download_count"] + current_info[alias]["versions"].append(new_version) changes["new_languages"] = set(languages) - previous_languages diff --git a/tools/build_release_files.py b/tools/build_release_files.py index 37e827eb1c..872302a4f6 100755 --- a/tools/build_release_files.py +++ b/tools/build_release_files.py @@ -48,14 +48,17 @@ for board in build_boards: 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 + for alias in board_info["aliases"] + [board]: + bin_directory = "../bin/{alias}/{language}".format(alias=alias, language=language) + os.makedirs(bin_directory, exist_ok=True) + final_filename = "adafruit-circuitpython-{alias}-{language}-{version}.{extension}".format(alias=alias, 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))