Skip to content

Effective Split of Peripheral Drivers #14

Effective Split of Peripheral Drivers

Effective Split of Peripheral Drivers #14

Workflow file for this run

name: CI Build
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
workflow_dispatch:
jobs:
build-arm-cortex-m4:
name: Build Cortex-M4 (arm-none-eabi) on ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [ ubuntu ]
container:
image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest
defaults:
run:
shell: sh
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Verify toolchain
run: |
cmake --version
ninja --version
arm-none-eabi-gcc --version
- name: Configure and Build Cortex-M4
run: cmake --workflow --preset on-target-cortex-m4-gcc-arm-none-eabi-ci
build-arm-cortex-m7:
name: Build Cortex-M7 (arm-none-eabi) on ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [ ubuntu ]
container:
image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest
defaults:
run:
shell: sh
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Verify toolchain
run: |
cmake --version
ninja --version
arm-none-eabi-gcc --version
- name: Configure and Build Cortex-M7
run: cmake --workflow --preset on-target-cortex-m7-gcc-arm-none-eabi-ci
build-native-gcc:
name: Build and Test (native GCC) on ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [ ubuntu ]
container:
image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest
defaults:
run:
shell: sh
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Verify toolchain
run: |
cmake --version
ninja --version
gcc --version
- name: Configure, Build, and Test
run: cmake --workflow --preset on-host-native-gcc
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-gcc-${{ matrix.distro }}
path: build/native-gcc/Testing/**/*.xml
if-no-files-found: ignore
build-native-llvm:
name: Build and Test (native LLVM) on ${{ matrix.distro }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
distro: [ ubuntu ]
container:
image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest
defaults:
run:
shell: sh
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Verify toolchain
run: |
cmake --version
ninja --version
clang --version
clang++ --version
- name: Configure, Build, and Test
run: cmake --workflow --preset on-host-native-llvm
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-llvm-${{ matrix.distro }}
path: build/native-llvm/Testing/**/*.xml
if-no-files-found: ignore