Skip to content

Add PRU backend for stock mainline-kernel images: PRU_BACKEND=genirq. #282

Add PRU backend for stock mainline-kernel images: PRU_BACKEND=genirq.

Add PRU backend for stock mainline-kernel images: PRU_BACKEND=genirq. #282

Workflow file for this run

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