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