### Goal
Idea is to reduce the annoyances and research which clang-tidy rules make sense and actually have benefits in our project.
Also considering immediately resolving most if not all tidy warnings.
### Current Changes
- `.clang-tidy` has changes to follow the guidelines we have been following silently. Some rules were different from how we program.
- Note that naming is completely removed and won't be checked. In a future PR (where we go over the code to fix linting issues), we can reintroduce them and make sure they fit our codebase consistently.
- tidy rules are not considered errors anymore (stopped compile).
- CI/CD addition to build check and clang-tidy check. Tried to get clang-tidy check to show when failed, but that causes complications in its checks; so now it is simply silent when failing.
- Dockerfile that creates an arch container as cache for the CI/CD, prevents redownload of dependencies each run. Instead, it runs weekly (or optionally a different interval).
### Current complications
- To push the docker container build, it would require this webserver to allow larger filesize pushes (need ~2GB). Current workaround is arguably better where docker build is pushed to runner server.
- Figuring out which clang-tidy rules make sense.
Reviewed-on: #130
Co-authored-by: AramJonghu <aramjonghu@tutamail.com>
Co-committed-by: AramJonghu <aramjonghu@tutamail.com>
44 lines
919 B
Docker
44 lines
919 B
Docker
FROM archlinux:latest
|
|
|
|
RUN pacman -Syu --noconfirm
|
|
|
|
# Build toolchain
|
|
RUN pacman -S --noconfirm \
|
|
base-devel \
|
|
cmake \
|
|
ninja \
|
|
clang \
|
|
lld \
|
|
nodejs \
|
|
git
|
|
|
|
# Qt6
|
|
RUN pacman -S --noconfirm \
|
|
qt6-base \
|
|
qt6-declarative \
|
|
qt6-shadertools \
|
|
qt6-5compat \
|
|
qt6-canvaspainter
|
|
|
|
# Project-specific dependencies
|
|
RUN pacman -S --noconfirm \
|
|
libqalculate \
|
|
pipewire \
|
|
aubio \
|
|
cava \
|
|
lm_sensors \
|
|
glib2
|
|
|
|
# AUR: libcava (provides development headers for cava)
|
|
RUN pacman -S --needed --noconfirm sudo && \
|
|
useradd -m builder && \
|
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
|
|
su builder -c " \
|
|
git clone https://aur.archlinux.org/libcava.git /tmp/libcava && \
|
|
cd /tmp/libcava && \
|
|
makepkg -si --noconfirm \
|
|
" && \
|
|
rm -rf /tmp/libcava && \
|
|
userdel -r builder && \
|
|
sed -i '/^builder/d' /etc/sudoers
|