| 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 |