Compare commits
2 commits
0d471b579a
...
76ebf081c2
Author | SHA1 | Date | |
---|---|---|---|
76ebf081c2 | |||
d1dc6f8e24 |
2 changed files with 36 additions and 23 deletions
|
@ -10,7 +10,7 @@ FROM archlinux@sha256:a10e51dd0694d6c4142754e9d06cbce7baf91ace8031a30df37064d109
|
|||
RUN pacman -Syyu --noconfirm \
|
||||
&& pacman -Syyu --noconfirm git less vim sudo python-pip wget which pkgconf \
|
||||
&& pacman -Syyu --noconfirm cmake make gcc ninja meson shellcheck \
|
||||
&& pacman -Syyu --noconfirm gtk4 gtkmm-4.0 boost spdlog fmt libxml++-5.0
|
||||
&& pacman -Syyu --noconfirm gtk4 gtkmm-4.0 boost spdlog fmt libxml++-5.0 gtest
|
||||
|
||||
# Create a non-root user 'dev'
|
||||
RUN useradd -ms /bin/bash dev \
|
||||
|
@ -38,6 +38,7 @@ ADD https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}/L
|
|||
# Create the LLVM directory and extract only binaries into it
|
||||
RUN sudo mkdir -p /home/LLVM-${LLVM_VER}
|
||||
RUN sudo tar -xJf /home/artifacts/LLVM-${LLVM_VER}-Linux-X64.tar.xz -C /home/LLVM-${LLVM_VER} --strip-components=1 \
|
||||
LLVM-${LLVM_VER}-Linux-X64/bin/clangd \
|
||||
LLVM-${LLVM_VER}-Linux-X64/bin/clang-19 \
|
||||
LLVM-${LLVM_VER}-Linux-X64/bin/clang \
|
||||
LLVM-${LLVM_VER}-Linux-X64/bin/clang++ \
|
||||
|
|
|
@ -120,6 +120,8 @@ jobs:
|
|||
echo "No clang-format violations detected!"
|
||||
|
||||
- name: GCC build
|
||||
id: gcc_build
|
||||
continue-on-error: true
|
||||
run: |
|
||||
mkdir -p ${{ github.workspace }}/build_gcc
|
||||
cmake -Wno-dev \
|
||||
|
@ -134,28 +136,51 @@ jobs:
|
|||
cmake --build ${{ github.workspace }}/build_gcc --parallel `nproc`
|
||||
|
||||
- name: GCC unit tests
|
||||
id: gcc_unit_tests
|
||||
continue-on-error: true
|
||||
run: |
|
||||
cd ${{ github.workspace }}/build_gcc
|
||||
./larra_xmpp_tests
|
||||
|
||||
- name: Clang build (only configuring)
|
||||
id: clang_build
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export LLVM_VER=19.1.1
|
||||
export PATH="/home/LLVM-${LLVM_VER}/bin:${PATH}"
|
||||
mkdir -p ${{ github.workspace }}/build_clang
|
||||
|
||||
cmake -Wno-dev \
|
||||
-DCMAKE_C_COMPILER=clang \
|
||||
-DCMAKE_CXX_COMPILER=clang++ \
|
||||
-S ${{ github.workspace }} \
|
||||
-B ${{ github.workspace }}/build_clang \
|
||||
-GNinja -DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_EXAMPLES=ON \
|
||||
-DENABLE_TESTS=ON \
|
||||
-DCMAKE_CXX_FLAGS="-stdlib=libc++ -I/home/LLVM-${LLVM_VER}/include/c++/v1 -fno-modules"
|
||||
|
||||
echo "::group::compile_commands.json content"
|
||||
cat ${{ github.workspace }}/build_clang/compile_commands.json
|
||||
echo "::endgroup::"
|
||||
|
||||
sed -i 's|@.*\.modmap||' ${{ github.workspace }}/build_clang/compile_commands.json
|
||||
|
||||
- name: Check clang-tidy
|
||||
id: clang_tidy
|
||||
continue-on-error: true
|
||||
run: |
|
||||
export LLVM_VER=19.1.1
|
||||
export PATH="/home/LLVM-${LLVM_VER}/bin:${PATH}"
|
||||
cd ${{ github.workspace }}
|
||||
|
||||
sed -i 's|/usr/sbin/g++|/home/LLVM-19.1.1/bin/clang++ -stdlib=libc++ -I/home/LLVM-${LLVM_VER}/include/c++/v1|' build_gcc/compile_commands.json
|
||||
sed -i 's|-fdeps-format=p1689r5||' build_gcc/compile_commands.json
|
||||
sed -i 's|-fmodules-ts||' build_gcc/compile_commands.json
|
||||
sed -i 's|-fmodule-mapper=.*\.modmap||' build_gcc/compile_commands.json
|
||||
|
||||
wget https://raw.githubusercontent.com/llvm/llvm-project/refs/heads/main/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
|
||||
python run-clang-tidy.py \
|
||||
-warnings-as-errors=* \
|
||||
-use-color \
|
||||
-exclude-header-filter .*build.* \
|
||||
-header-filter .hpp \
|
||||
-p ${{ github.workspace }}/build_gcc/ \
|
||||
-p ${{ github.workspace }}/build_clang/ \
|
||||
-config-file ${{ github.workspace }}/.clang-tidy \
|
||||
\
|
||||
${{ github.workspace }}/examples \
|
||||
|
@ -164,22 +189,9 @@ jobs:
|
|||
|
||||
echo "No clang-tidy violations detected!"
|
||||
|
||||
#- name: Clang build with -fsanitize=address
|
||||
# run: |
|
||||
# export LLVM_VER=19.1.1
|
||||
# export PATH="/home/LLVM-${LLVM_VER}/bin:${PATH}"
|
||||
# mkdir -p ${{ github.workspace }}/build_clang
|
||||
# cmake -Wno-dev \
|
||||
# -DCMAKE_C_COMPILER=clang \
|
||||
# -DCMAKE_CXX_COMPILER=clang++ \
|
||||
# -S ${{ github.workspace }} \
|
||||
# -B ${{ github.workspace }}/build_clang \
|
||||
# -GNinja -DCMAKE_BUILD_TYPE=Release \
|
||||
# -DENABLE_EXAMPLES=ON \
|
||||
# -DENABLE_TESTS=ON \
|
||||
# -DCMAKE_CXX_FLAGS="-stdlib=libc++ -I/home/LLVM-${LLVM_VER}/include/c++/v1 -fno-omit-frame-pointer -g -fsanitize=address,undefined,leak,function,nullability,vptr" \
|
||||
# -DCMAKE_EXE_LINKER_FLAGS="-L/home/LLVM-${LLVM_VER}/lib/ -Wl,-rpath,/home/LLVM-${LLVM_VER}/lib -lc++ -lc++abi -lm -lc -lgcc_s -lgcc -fno-omit-frame-pointer -g -fsanitize=address,undefined,leak,function,nullability,vptr"
|
||||
# cmake --build ${{ github.workspace }}/build_clang --parallel `nproc`
|
||||
- name: Check on failures
|
||||
if: steps.gcc_build.outcome != 'success' || steps.gcc_unit_tests.outcome != 'success' || steps.clang_build.outcome != 'success' || steps.clang_tidy.outcome != 'success'
|
||||
run: exit 1
|
||||
|
||||
#- name: Clang unit tests with -fsanitize=address
|
||||
# run: |
|
||||
|
|
Loading…
Reference in a new issue