blob: 25cddb59bc400ecf153ed6f59c8bd0b1db12d5e9 [file] [log] [blame]
name: CHERIoT RTOS Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
merge_group:
workflow_dispatch:
jobs:
run-tests:
strategy:
matrix:
build-type: [ debug, release ]
board: [ sail, ibex-safe-simulator ]
include:
- build-type: debug
build-flags: --debug-loader=y --debug-scheduler=y --debug-allocator=y -m debug
- build-type: release
build-flags: --debug-loader=n --debug-scheduler=n --debug-allocator=n -m release --stack-usage-check-allocator=y --stack-usage-check-scheduler=y
fail-fast: false
runs-on: ubuntu-latest
container:
image: ghcr.io/cheriot-platform/devcontainer:latest
options: --user 1001
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v3
with:
submodules: recursive
- name: Build tests
run: |
cd tests
xmake f --board=${{ matrix.board }} --sdk=/cheriot-tools/ ${{ matrix.build-flags }}
xmake
- name: Run tests
run: |
cd tests
xmake run
- name: Build examples
run: |
set -e
for example_dir in $PWD/examples/*/; do
cd $example_dir
echo Building $example_dir
xmake f --board=${{ matrix.board }} --sdk=/cheriot-tools/ ${{ matrix.build-flags }}
xmake
done
- name: Run examples
run: |
set -e
for example_dir in $PWD/examples/*/; do
cd $example_dir
echo Running $example_dir
xmake run
done
- name: Build benchmarks
run: |
set -e
for example_dir in $PWD/benchmarks/*/; do
cd $example_dir
echo Building $example_dir
xmake f --board=${{ matrix.board }} --sdk=/cheriot-tools/ ${{ matrix.build-flags }}
xmake
done
check-format:
name: Check coding conventions
runs-on: ubuntu-latest
container:
image: ghcr.io/cheriot-platform/devcontainer:latest
options: --user 1001
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v3
with:
submodules: recursive
- name: Run clang-format and clang-tidy
run: ./scripts/run_clang_tidy_format.sh /cheriot-tools/bin
all-checks:
needs: [run-tests, check-format]
runs-on: ubuntu-latest
steps:
- name: Dummy step
run: true