64 lines
1.4 KiB
YAML
64 lines
1.4 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
pull_request:
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
boards: ${{ steps.board-matrix.outputs.boards }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: ./scripts/deps.sh
|
|
|
|
- name: Check SPDX tags
|
|
run: ./scripts/lint/01-spdx-tags.sh
|
|
|
|
- name: Check formatting
|
|
run: ./scripts/lint/02-clang-format.sh
|
|
|
|
- name: Check shell scripts
|
|
run: ./scripts/lint/03-shellcheck.sh
|
|
|
|
- name: Generate board matrix
|
|
id: board-matrix
|
|
run: echo "boards=$(make list-boards | jq -sRc 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
|
|
|
|
tool:
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- features:
|
|
- features: --no-default-features --features="redox_hwio"
|
|
|
|
runs-on: ubuntu-22.04
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: ./scripts/deps.sh
|
|
|
|
- name: Build tool
|
|
run: cargo build ${{ matrix.features }} --release --manifest-path tool/Cargo.toml
|
|
|
|
ec:
|
|
runs-on: ubuntu-22.04
|
|
needs: lint
|
|
strategy:
|
|
matrix:
|
|
boards: ${{ fromJson(needs.lint.outputs.boards) }}
|
|
# TODO: Conditionally build based on files changed?
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install dependencies
|
|
run: ./scripts/deps.sh
|
|
|
|
- name: Build firmware
|
|
run: make BOARD=${{ matrix.boards }} VERBOSE=1
|