Fix native build on current images: name the FPU explicitly. #294
Workflow file for this run
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 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: | |
| - g++ | |
| - clang++ | |
| cpp_standard: | |
| - "-std=c++17" | |
| - "-std=c++20" | |
| optimization: [ 0, 1, 2, 3] | |
| name: Test ${{matrix.compiler}} ${{ matrix.cpp_standard }} -O${{matrix.optimization}} | |
| steps: | |
| - name: Prepare | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt install -y g++ clang pkg-config libgtest-dev libgmock-dev valgrind | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Configure shell | |
| # Since we're not compiling on the Beaglebone, disable arm specifics | |
| run: | | |
| echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV | |
| echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV | |
| echo "CPP_STANDARD=${{ matrix.cpp_standard }}" >> $GITHUB_ENV | |
| echo "BEAGLEG_OPT_CFLAGS=-O${{ matrix.optimization }} -Werror" >> $GITHUB_ENV | |
| - name: Build | |
| run: | | |
| make | |
| - name: Test | |
| run: | | |
| make test | |
| - name: Valgrind Test | |
| run: | | |
| make valgrind-test | |
| build-genirq-backend: | |
| runs-on: ubuntu-latest | |
| name: Build PRU_BACKEND=genirq | |
| steps: | |
| - name: Prepare | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt install -y g++ clang pkg-config libgtest-dev libgmock-dev | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: recursive | |
| - name: Configure shell | |
| run: | | |
| echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV | |
| echo "BEAGLEG_OPT_CFLAGS=-O2 -Werror" >> $GITHUB_ENV | |
| - name: Build with g++ | |
| run: | | |
| make -C src PRU_BACKEND=genirq ../machine-control | |
| - name: Build with clang++ | |
| run: | | |
| make -C src clean | |
| CXX=clang++ make -C src PRU_BACKEND=genirq ../machine-control | |
| build-and-test_cpp11: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| name: Test c++11-compat | |
| steps: | |
| - name: Prepare | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt install -y clang pkg-config | |
| - uses: actions/checkout@v7 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Install GoogleTest 1.12.1 | |
| run: | | |
| git clone --branch release-1.12.1 --depth 1 https://github.com/google/googletest.git | |
| cd googletest | |
| cmake -B build -DCMAKE_BUILD_TYPE=Release | |
| sudo cmake --build build --target install | |
| - name: Configure shell | |
| # Since we're not compiling on the Beaglebone, disable arm specifics | |
| run: | | |
| echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV | |
| echo "CXX=clang++" >> $GITHUB_ENV # g++ does not support c++11 anymore | |
| echo "CPP_STANDARD=-std=c++11" >> $GITHUB_ENV | |
| echo "BEAGLEG_OPT_CFLAGS=-O2 -Werror" >> $GITHUB_ENV | |
| - name: Build | |
| run: | | |
| make | |
| - name: Test | |
| run: | | |
| make test | |
| hardware-targets: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| hardware: # TODO: can the matrix be derived from directory hardware/* ? | |
| - BUMPS | |
| - CRAMPS | |
| - Pockegotion | |
| - VGEN5 | |
| name: Hardware ${{matrix.hardware}} | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Configure shell | |
| # Since we're not compiling on the Beaglebone, disable arm specifics | |
| run: | | |
| echo "ARM_COMPILE_FLAGS=" >> $GITHUB_ENV | |
| echo BEAGLEG_HARDWARE_TARGET="${{matrix.hardware}}" >> $GITHUB_ENV | |
| - name: Build | |
| run: | | |
| make | |
| Coverage: | |
| runs-on: ubuntu-latest | |
| name: Coverage prepare | |
| steps: | |
| - name: Prepare | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt install -y g++ pkg-config libgtest-dev libgmock-dev lcov | |
| - uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Configure shell | |
| # Since we're not compiling on the Beaglebone, disable arm specifics | |
| run: | | |
| echo 'ARM_COMPILE_FLAGS=' >> $GITHUB_ENV | |
| - name: Coverage run | |
| run: | | |
| make -C src beagleg.coverage | |
| # todo: do something with coverage | |
| CodeFormatting: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get install clang-format-19 | |
| clang-format-19 --version | |
| - name: Run formatting style check | |
| run: | | |
| export CLANG_FORMAT=clang-format-19 | |
| ./.github/bin/run-clang-format.sh | |
| ClangTidy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| with: | |
| submodules: recursive | |
| fetch-depth: 0 | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get install pkg-config libgtest-dev libgmock-dev bear clang-tidy-19 | |
| - name: Run clang tidy | |
| run: | | |
| # for now, just report, but don't fail the CI | |
| ./.github/bin/run-clang-tidy-cached.cc || true |