name: CHERIoT RTOS Tests

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  merge_group:
  workflow_dispatch:
    inputs:
      devcontainer:
        description: 'Set to override default build container'
        type: string
        required: false

jobs:
  run-tests:
    strategy:
      matrix:
        build-type: [ debug, release ]
        board: [ sail, ibex-safe-simulator ]
        include:
          - sonata: false
          - build-type: debug
            build-flags: --debug-loader=y --debug-scheduler=y --debug-allocator=y --allocator-rendering=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
          - board: sonata-simulator
            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 --testing-model-output=y
            sonata: true
      fail-fast: false
    runs-on: ubuntu-latest
    container:
      image: ${{ inputs.devcontainer || 'ghcr.io/cheriot-platform/devcontainer:latest' }}
      options: --user 1001
    steps:
    - name: Checkout repository and submodules
      uses: actions/checkout@v4
      with:
        submodules: recursive
    - name: Build tests
      run: |
        cd tests
        xmake f --board=${{ matrix.board }} --sdk=/cheriot-tools/ ${{ matrix.build-flags }}
        xmake
    - name: Run tests
      # Test suite needs HyperRAM support to be added to RTOS because SRAM is not big enough.
      if: ${{ !matrix.sonata }}
      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@v4
      with:
        submodules: recursive
    - name: Generate compiler_commands.json files
      run: ./scripts/generate_compile_commands.sh
    - 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
