Skip to content

Commit 121d532

Browse files
authored
Merge pull request #1781 from tannewt/build_aliases
Add alias support for unique board revs
2 parents 959258b + 1eb1430 commit 121d532

File tree

2 files changed

+47
-26
lines changed

2 files changed

+47
-26
lines changed

tools/build_board_info.py

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
"pca10059": BIN_UF2
4343
}
4444

45+
aliases_by_board = {
46+
"circuitplayground_express": ["circuitplayground_express_4h", "circuitplayground_express_digikey_pycon2019"],
47+
"gemma_m0": ["gemma_m0_pycon2018"],
48+
"pewpew10": ["pewpew13"]
49+
}
50+
4551
def get_languages():
4652
languages = []
4753
for f in os.scandir("../locale"):
@@ -59,7 +65,17 @@ def get_board_mapping():
5965
board_id = board_path.name
6066
extensions = extension_by_port[port]
6167
extensions = extension_by_board.get(board_path.name, extensions)
62-
boards[board_id] = {"port": port, "extensions": extensions, "download_count": 0}
68+
aliases = aliases_by_board.get(board_path.name, [])
69+
boards[board_id] = {"port": port,
70+
"extensions": extensions,
71+
"download_count": 0,
72+
"aliases": aliases}
73+
for alias in aliases:
74+
boards[alias] = {"port": port,
75+
"extensions": extensions,
76+
"download_count": 0,
77+
"alias": True,
78+
"aliases": []}
6379
return boards
6480

6581
def get_version_info():
@@ -235,23 +251,25 @@ def generate_download_info():
235251
board_id = board_path.name
236252
board_info = board_mapping[board_id]
237253

238-
if board_id not in current_info:
239-
changes["new_boards"].append(board_id)
240-
current_info[board_id] = {"downloads": 0,
241-
"versions": []}
242-
243-
new_version = {
244-
"stable": new_stable,
245-
"version": new_tag,
246-
"files": {}
247-
}
248-
for language in languages:
249-
files = []
250-
new_version["files"][language] = files
251-
for extension in board_info["extensions"]:
252-
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))
253-
current_info[board_id]["downloads"] = board_info["download_count"]
254-
current_info[board_id]["versions"].append(new_version)
254+
for alias in [board_id] + board_info["aliases"]:
255+
alias_info = board_mapping[alias]
256+
if alias not in current_info:
257+
changes["new_boards"].append(alias)
258+
current_info[alias] = {"downloads": 0,
259+
"versions": []}
260+
261+
new_version = {
262+
"stable": new_stable,
263+
"version": new_tag,
264+
"files": {}
265+
}
266+
for language in languages:
267+
files = []
268+
new_version["files"][language] = files
269+
for extension in board_info["extensions"]:
270+
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))
271+
current_info[alias]["downloads"] = alias_info["download_count"]
272+
current_info[alias]["versions"].append(new_version)
255273

256274
changes["new_languages"] = set(languages) - previous_languages
257275

tools/build_release_files.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,17 @@
4848

4949
for extension in board_info["extensions"]:
5050
temp_filename = "../ports/{port}/build-{board}/firmware.{extension}".format(port=board_info["port"], board=board, extension=extension)
51-
final_filename = "adafruit-circuitpython-{board}-{language}-{version}.{extension}".format(board=board, language=language, version=version, extension=extension)
52-
final_filename = os.path.join(bin_directory, final_filename)
53-
try:
54-
shutil.copyfile(temp_filename, final_filename)
55-
except FileNotFoundError:
56-
other_output = "Cannot find file {}".format(temp_filename)
57-
if exit_status == 0:
58-
exit_status = 1
51+
for alias in board_info["aliases"] + [board]:
52+
bin_directory = "../bin/{alias}/{language}".format(alias=alias, language=language)
53+
os.makedirs(bin_directory, exist_ok=True)
54+
final_filename = "adafruit-circuitpython-{alias}-{language}-{version}.{extension}".format(alias=alias, language=language, version=version, extension=extension)
55+
final_filename = os.path.join(bin_directory, final_filename)
56+
try:
57+
shutil.copyfile(temp_filename, final_filename)
58+
except FileNotFoundError:
59+
other_output = "Cannot find file {}".format(temp_filename)
60+
if exit_status == 0:
61+
exit_status = 1
5962

6063
if travis:
6164
print('travis_fold:start:adafruit-bins-{}-{}\\r'.format(language, board))

0 commit comments

Comments
 (0)