Skip to content

ref: migrate to mvc pattern #12

ref: migrate to mvc pattern

ref: migrate to mvc pattern #12

Workflow file for this run

name: Check code quality
on:
pull_request:
branches: [main, dev]
env:
BUILD_TYPE: Debug
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Deps
run: |
sudo apt-get update -y && sudo apt update
sudo apt-get install -y \
libgl1-mesa-dev \
clang \
gcc \
cmake \
ninja-build \
clang-tidy \
cppcheck
sudo apt-get install -y \
qt6-tools-dev \
qt6-base-dev \
qt6-base-private-dev \
qt6-tools-dev \
qt6-tools-private-dev \
- name: Configure CMake
working-directory: ${{github.workspace}}
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
mv compile_commands.json ..
- name: Run cppcheck
working-directory: ${{github.workspace}}
run: cppcheck --library=qt src/
- name: Run clang-tidy
working-directory: ${{github.workspace}}
run: echo '-- -I ./' | find . -type d -name '*build*' -prune -o \( -name '*.cpp' -o -name '*.hpp' \) -print | xargs clang-tidy --fix --fix-errors --fix-notes --use-color
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Deps
run: |
# Update package lists
sudo apt-get update -y
sudo apt-get install -y \
libgl1-mesa-dev \
clang \
gcc \
ninja-build \
cmake \
clang-format
sudo apt-get install -y \
qt6-tools-dev \
qt6-base-dev \
qt6-base-private-dev \
qt6-tools-dev \
qt6-tools-private-dev \
- name: Configure CMake
working-directory: ${{github.workspace}}
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
mv compile_commands.json ..
- name: Run clang-format
working-directory: ${{github.workspace}}
run: find . -type d -name '*build*' -prune -o \( -name '*.cpp' -o -name '*.hpp' \) -print | grep -E '\.(cpp|hpp)$' | xargs clang-format -n
# test:
# runs-on: ubuntu-latest
#
# steps:
#
# - uses: actions/checkout@v4
#
# - name: Install Deps
# run: |
# sudo apt-get update
# sudo apt-get install build-essential libgl1-mesa-dev libc++-dev libc++abi-dev binutils binutils-dev clang gdb pkg-config
# sudo apt install -y xvfb x11-utils libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 xdotool
# sudo apt install -y qt6-base-dev qt6-base-private-dev qt6-declarative-dev qt6-declarative-private-dev qt6-tools-dev qt6-tools-private-dev qt6-scxml-dev qt6-documentation-tools libqt6core5compat6-dev qt6-tools-dev-tools qt6-l10n-tools qt6-shader-baker libqt6shadertools6-dev qt6-quick3d-dev qt6-quick3d-dev-tools libqt6svg6-dev libqt6quicktimeline6-dev libqt6serialport6-dev
# sudo apt install -y ninja-build cmake
#
# - name: Configure CMake
# working-directory: ${{github.workspace}}
# run: |
# mkdir build
# cd build
# cmake .. -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -G Ninja
# cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
# mv compile_commands.json ..
#
# - name: Build
# working-directory: ${{github.workspace}}/build
# run: ninja
#
# - name: Test
# working-directory: ${{github.workspace}}/build
# run: xvfb-run --auto-servernum ctest . -VV