Skip to content

Commit 50c52fc

Browse files
committed
split raspberrypi and refactor espressif
1 parent 65e9d93 commit 50c52fc

File tree

5 files changed

+42
-46
lines changed

5 files changed

+42
-46
lines changed

.github/actions/deps/external/action.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ inputs:
88
options:
99
- arm
1010
- aarch
11-
- espressif
11+
- esp
1212
- riscv
1313
- none
1414

@@ -42,13 +42,13 @@ runs:
4242
with:
4343
release: '10-2020-q4'
4444

45-
# espressif
46-
- name: Get espressif toolchain
47-
if: inputs.platform == 'espressif'
45+
# esp
46+
- name: Get esp toolchain
47+
if: inputs.platform == 'esp'
4848
run: sudo apt-get install -y ninja-build
4949
shell: bash
5050
- name: Install IDF tools
51-
if: inputs.platform == 'espressif'
51+
if: inputs.platform == 'esp'
5252
run: |
5353
echo "Installing ESP-IDF tools"
5454
$IDF_PATH/tools/idf_tools.py --non-interactive install required
@@ -58,7 +58,7 @@ runs:
5858
rm -rf $IDF_TOOLS_PATH/dist
5959
shell: bash
6060
- name: Set environment
61-
if: inputs.platform == 'espressif'
61+
if: inputs.platform == 'esp'
6262
run: |
6363
source $IDF_PATH/export.sh
6464
echo >> $GITHUB_ENV "IDF_PYTHON_ENV_PATH=$IDF_PYTHON_ENV_PATH"
@@ -75,7 +75,7 @@ runs:
7575

7676
# common
7777
- name: Cache python dependencies
78-
if: inputs.platform != 'espressif'
78+
if: inputs.platform != 'esp'
7979
uses: ./.github/actions/deps/python
8080
with:
8181
action: ${{ fromJSON('["restore", "cache"]')[github.job == 'scheduler'] }}
Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,15 @@
1-
name: Fetch port deps
2-
3-
inputs:
4-
platform:
5-
required: false
6-
default: none
7-
type: choice
8-
options:
9-
- espressif
10-
- none
1+
name: Fetch espressif port deps
112

123
runs:
134
using: composite
145
steps:
15-
# espressif
166
- name: Set IDF env
17-
if: inputs.platform == 'espressif'
187
run: |
198
echo >> $GITHUB_ENV "IDF_PATH=$GITHUB_WORKSPACE/ports/espressif/esp-idf"
209
echo >> $GITHUB_ENV "IDF_TOOLS_PATH=$GITHUB_WORKSPACE/.idf_tools"
2110
shell: bash
2211

2312
- name: Get IDF commit
24-
if: inputs.platform == 'espressif'
2513
id: idf-commit
2614
run: |
2715
COMMIT=$(git submodule status ports/espressif/esp-idf | grep -o -P '(?<=^-).*(?= )')
@@ -30,7 +18,6 @@ runs:
3018
shell: bash
3119

3220
- name: Cache IDF submodules
33-
if: inputs.platform == 'espressif'
3421
uses: actions/cache@v3
3522
with:
3623
path: |
@@ -39,13 +26,11 @@ runs:
3926
key: submodules-idf-${{ steps.idf-commit.outputs.commit }}
4027

4128
- name: Cache IDF tools
42-
if: inputs.platform == 'espressif'
4329
uses: actions/cache@v3
4430
with:
4531
path: ${{ env.IDF_TOOLS_PATH }}
4632
key: ${{ runner.os }}-${{ env.pythonLocation }}-tools-idf-${{ steps.idf-commit.outputs.commit }}
4733

4834
- name: Initialize IDF submodules
49-
if: inputs.platform == 'espressif'
5035
run: git submodule update --init --depth=1 --recursive $IDF_PATH
5136
shell: bash

.github/workflows/build-boards.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,8 @@ jobs:
3535
with:
3636
python-version: 3.x
3737
- name: Set up port
38-
uses: ./.github/actions/deps/port
39-
with:
40-
platform: ${{ inputs.platform }}
38+
if: inputs.platform == 'esp'
39+
uses: ./.github/actions/deps/ports/espressif
4140
- name: Set up submodules
4241
id: set-up-submodules
4342
uses: ./.github/actions/deps/submodules

.github/workflows/build.yml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,9 @@ jobs:
2424
build-boards: ${{ steps.set-matrix.outputs.build-boards }}
2525
boards-aarch: ${{ steps.set-matrix.outputs.boards-aarch }}
2626
boards-arm: ${{ steps.set-matrix.outputs.boards-arm }}
27-
boards-espressif: ${{ steps.set-matrix.outputs.boards-espressif }}
27+
boards-esp: ${{ steps.set-matrix.outputs.boards-esp }}
2828
boards-riscv: ${{ steps.set-matrix.outputs.boards-riscv }}
29+
boards-rpi: ${{ steps.set-matrix.outputs.boards-rpi }}
2930
cp-version: ${{ steps.set-up-submodules.outputs.version }}
3031
steps:
3132
- name: Dump GitHub context
@@ -238,13 +239,13 @@ jobs:
238239
cp-version: ${{ needs.scheduler.outputs.cp-version }}
239240

240241

241-
espressif:
242+
esp:
242243
needs: [scheduler, mpy-cross, tests]
243-
if: ${{ needs.scheduler.outputs.boards-espressif != '[]' }}
244+
if: ${{ needs.scheduler.outputs.boards-esp != '[]' }}
244245
uses: ./.github/workflows/build-boards.yml
245246
with:
246-
platform: espressif
247-
boards: ${{ needs.scheduler.outputs.boards-espressif }}
247+
platform: esp
248+
boards: ${{ needs.scheduler.outputs.boards-esp }}
248249
cp-version: ${{ needs.scheduler.outputs.cp-version }}
249250

250251

@@ -256,3 +257,12 @@ jobs:
256257
platform: riscv
257258
boards: ${{ needs.scheduler.outputs.boards-riscv }}
258259
cp-version: ${{ needs.scheduler.outputs.cp-version }}
260+
261+
rpi:
262+
needs: [scheduler, mpy-cross, tests]
263+
if: ${{ needs.scheduler.outputs.boards-rpi != '[]' }}
264+
uses: ./.github/workflows/build-boards.yml
265+
with:
266+
platform: arm
267+
boards: ${{ needs.scheduler.outputs.boards-rpi }}
268+
cp-version: ${{ needs.scheduler.outputs.cp-version }}

tools/ci_set_matrix.py

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@
4646
"atmel-samd": "arm",
4747
"broadcom": "aarch",
4848
"cxd56": "arm",
49-
"espressif": "espressif",
49+
"espressif": "esp",
5050
"litex": "riscv",
5151
"mimxrt10xx": "arm",
5252
"nrf": "arm",
53-
"raspberrypi": "arm",
53+
"raspberrypi": "rpi",
5454
"stm": "arm",
5555
}
5656

@@ -204,31 +204,33 @@ def get_settings(board):
204204
break
205205

206206
# Split boards by architecture.
207+
arch_to_boards = {"aarch": [], "arm": [], "esp": [], "riscv": [], "rpi": []}
208+
209+
# Append previously failed boards
210+
for arch in arch_to_boards:
211+
arch_to_job = f"build-{arch}"
212+
if arch_to_job in last_failed_jobs:
213+
for board in last_failed_jobs[arch_to_job]:
214+
if not board in boards_to_build:
215+
boards_to_build.append(board)
216+
207217
build_boards = bool(boards_to_build)
208218
print("Building boards:", build_boards)
209219
set_output("build-boards", build_boards)
210-
arch_to_boards = {"aarch": [], "arm": [], "riscv": [], "espressif": []}
220+
221+
# Append boards according to arch
211222
for board in sorted(boards_to_build):
212-
print(" ", board)
213223
port = board_to_port.get(board)
214224
# A board can appear due to its _deletion_ (rare)
215225
# if this happens it's not in `board_to_port`.
216226
if not port:
217227
continue
218-
arch = PORT_TO_ARCH[port]
219-
arch_to_boards[arch].append(board)
228+
arch_to_boards[PORT_TO_ARCH[port]].append(board)
229+
print(" ", board)
220230

221231
# Set the step outputs for each architecture
222232
for arch in arch_to_boards:
223-
# Append previous failed jobs
224-
if f"build-{arch}" in last_failed_jobs:
225-
failed_boards = last_failed_jobs[f"build-{arch}"]
226-
for board in failed_boards:
227-
if not board in arch_to_boards[arch]:
228-
print(" ", board)
229-
arch_to_boards[arch].append(board)
230-
# Set Output
231-
set_output(f"boards-{arch}", json.dumps(sorted(arch_to_boards[arch])))
233+
set_output(f"boards-{arch}", json.dumps(arch_to_boards[arch]))
232234

233235

234236
def set_docs_to_build(build_doc: bool):

0 commit comments

Comments
 (0)