Generate matrix from directory
This commit is contained in:
58
.github/workflows/ci.yml
vendored
58
.github/workflows/ci.yml
vendored
@ -7,6 +7,8 @@ on:
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
boards: ${{ steps.board-matrix.outputs.boards }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
@ -22,6 +24,10 @@ jobs:
|
||||
- name: Check shell scripts
|
||||
run: ./scripts/lint/03-shellcheck.sh
|
||||
|
||||
- name: Generate board matrix
|
||||
id: board-matrix
|
||||
run: ./scripts/boards.sh >> $GITHUB_OUTPUT
|
||||
|
||||
tool:
|
||||
strategy:
|
||||
matrix:
|
||||
@ -41,57 +47,11 @@ jobs:
|
||||
|
||||
ec:
|
||||
runs-on: ubuntu-22.04
|
||||
needs: lint
|
||||
strategy:
|
||||
matrix:
|
||||
# TODO: Generate matrix from directory?
|
||||
boards: ${{ fromJson(needs.lint.outputs.boards )}}
|
||||
# TODO: Conditionally build based on files changed?
|
||||
include:
|
||||
- vendor: arduino
|
||||
board: mega2560
|
||||
- vendor: system76
|
||||
board: addw1
|
||||
- vendor: system76
|
||||
board: addw2
|
||||
- vendor: system76
|
||||
board: bonw14
|
||||
- vendor: system76
|
||||
board: darp5
|
||||
- vendor: system76
|
||||
board: darp7
|
||||
- vendor: system76
|
||||
board: darp8
|
||||
- vendor: system76
|
||||
board: galp3-c
|
||||
- vendor: system76
|
||||
board: galp5
|
||||
- vendor: system76
|
||||
board: galp6
|
||||
- vendor: system76
|
||||
board: gaze15
|
||||
- vendor: system76
|
||||
board: gaze16-3050
|
||||
- vendor: system76
|
||||
board: gaze16-3060
|
||||
- vendor: system76
|
||||
board: gaze17-3050
|
||||
- vendor: system76
|
||||
board: gaze17-3060-b
|
||||
- vendor: system76
|
||||
board: lemp9
|
||||
- vendor: system76
|
||||
board: lemp10
|
||||
- vendor: system76
|
||||
board: lemp11
|
||||
- vendor: system76
|
||||
board: oryp5
|
||||
- vendor: system76
|
||||
board: oryp6
|
||||
- vendor: system76
|
||||
board: oryp7
|
||||
- vendor: system76
|
||||
board: oryp8
|
||||
- vendor: system76
|
||||
board: oryp9
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@ -100,4 +60,4 @@ jobs:
|
||||
run: ./scripts/deps.sh
|
||||
|
||||
- name: Build firmware
|
||||
run: make BOARD=${{ matrix.vendor}}/${{ matrix.board }} VERBOSE=1
|
||||
run: make BOARD=${{ matrix.boards.vendor}}/${{ matrix.boards.board }} VERBOSE=1
|
||||
|
16
scripts/boards.sh
Executable file
16
scripts/boards.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
set -eE
|
||||
EXCLUDED_BOARDS=(
|
||||
"system76/common"
|
||||
"arduino/uno"
|
||||
"arduino/micro"
|
||||
)
|
||||
|
||||
BOARDS=$(find src/board -type d -maxdepth 2 -mindepth 2 2>/dev/null \
|
||||
| grep -vFf <(printf '%s\n' "${EXCLUDED_BOARDS[@]}") \
|
||||
| jq -sRc 'split("\n")[:-1] | map(split("/")) | map({vendor: .[2], board: .[3]})'
|
||||
)
|
||||
|
||||
echo "boards=${BOARDS}"
|
Reference in New Issue
Block a user