Effective Split of Peripheral Drivers #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI Build | |
| on: | |
| push: | |
| branches: [ main, develop ] | |
| pull_request: | |
| branches: [ main, develop ] | |
| workflow_dispatch: | |
| jobs: | |
| build-arm-cortex-m4: | |
| name: Build Cortex-M4 (arm-none-eabi) on ${{ matrix.distro }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: [ ubuntu ] | |
| container: | |
| image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest | |
| defaults: | |
| run: | |
| shell: sh | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Verify toolchain | |
| run: | | |
| cmake --version | |
| ninja --version | |
| arm-none-eabi-gcc --version | |
| - name: Configure and Build Cortex-M4 | |
| run: cmake --workflow --preset on-target-cortex-m4-gcc-arm-none-eabi-ci | |
| build-arm-cortex-m7: | |
| name: Build Cortex-M7 (arm-none-eabi) on ${{ matrix.distro }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: [ ubuntu ] | |
| container: | |
| image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest | |
| defaults: | |
| run: | |
| shell: sh | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Verify toolchain | |
| run: | | |
| cmake --version | |
| ninja --version | |
| arm-none-eabi-gcc --version | |
| - name: Configure and Build Cortex-M7 | |
| run: cmake --workflow --preset on-target-cortex-m7-gcc-arm-none-eabi-ci | |
| build-native-gcc: | |
| name: Build and Test (native GCC) on ${{ matrix.distro }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: [ ubuntu ] | |
| container: | |
| image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest | |
| defaults: | |
| run: | |
| shell: sh | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Verify toolchain | |
| run: | | |
| cmake --version | |
| ninja --version | |
| gcc --version | |
| - name: Configure, Build, and Test | |
| run: cmake --workflow --preset on-host-native-gcc | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results-gcc-${{ matrix.distro }} | |
| path: build/native-gcc/Testing/**/*.xml | |
| if-no-files-found: ignore | |
| build-native-llvm: | |
| name: Build and Test (native LLVM) on ${{ matrix.distro }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| distro: [ ubuntu ] | |
| container: | |
| image: ghcr.io/emrainey/bare-metal-dev-ubuntu:latest | |
| defaults: | |
| run: | |
| shell: sh | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Verify toolchain | |
| run: | | |
| cmake --version | |
| ninja --version | |
| clang --version | |
| clang++ --version | |
| - name: Configure, Build, and Test | |
| run: cmake --workflow --preset on-host-native-llvm | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results-llvm-${{ matrix.distro }} | |
| path: build/native-llvm/Testing/**/*.xml | |
| if-no-files-found: ignore |