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:
|
jobs:
|
||||||
lint:
|
lint:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
outputs:
|
||||||
|
boards: ${{ steps.board-matrix.outputs.boards }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
@ -22,6 +24,10 @@ jobs:
|
|||||||
- name: Check shell scripts
|
- name: Check shell scripts
|
||||||
run: ./scripts/lint/03-shellcheck.sh
|
run: ./scripts/lint/03-shellcheck.sh
|
||||||
|
|
||||||
|
- name: Generate board matrix
|
||||||
|
id: board-matrix
|
||||||
|
run: ./scripts/boards.sh >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
tool:
|
tool:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
@ -41,57 +47,11 @@ jobs:
|
|||||||
|
|
||||||
ec:
|
ec:
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
|
needs: lint
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
# TODO: Generate matrix from directory?
|
boards: ${{ fromJson(needs.lint.outputs.boards )}}
|
||||||
# TODO: Conditionally build based on files changed?
|
# 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:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
@ -100,4 +60,4 @@ jobs:
|
|||||||
run: ./scripts/deps.sh
|
run: ./scripts/deps.sh
|
||||||
|
|
||||||
- name: Build firmware
|
- 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