Skip to content

Merge pull request #181 from f9micro/optimize-interrupt #48

Merge pull request #181 from f9micro/optimize-interrupt

Merge pull request #181 from f9micro/optimize-interrupt #48

Workflow file for this run

name: Build
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
strategy:
matrix:
board: [discoveryf4, discoveryf429, netduinoplus2]
steps:
- uses: actions/checkout@v6
- name: Install ARM toolchain
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '15.2.Rel1'
- name: Configure for ${{ matrix.board }}
run: make ${{ matrix.board }}_defconfig
- name: Build kernel
run: make
- name: Show binary size
run: arm-none-eabi-size build/${{ matrix.board }}/f9.elf
- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: f9-${{ matrix.board }}
path: |
build/${{ matrix.board }}/f9.elf
build/${{ matrix.board }}/f9.bin
test:
runs-on: ubuntu-24.04
needs: build
steps:
- uses: actions/checkout@v6
- name: Install ARM toolchain
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '15.2.Rel1'
- name: Install QEMU
run: sudo apt-get update && sudo apt-get install -y qemu-system-arm
- name: Configure for netduinoplus2
run: make netduinoplus2_defconfig
- name: Enable test suite
run: |
# Enable test suite, disable conflicting apps
sed -i 's/^CONFIG_PINGPONG=y/# CONFIG_PINGPONG is not set/' .config
echo "CONFIG_TESTS=y" >> .config
python3 tools/kconfig/genconfig.py --header-path include/autoconf.h Kconfig
- name: Build kernel with tests
run: make
- name: Run test suite
run: make run-tests
- name: Run MPU fault test (expected to fail on QEMU)
run: make run-tests FAULT=mpu
continue-on-error: true
- name: Run stack canary fault test
run: make run-tests FAULT=canary