mirror of
https://invent.kde.org/graphics/okular
synced 2024-09-17 23:11:48 +00:00
d23422d04a
apt-get uses several fsync() calls on each package it installs, and that's very slow, especially on non-SSD. eatmydata turns fsync into no-op, which makes package installation much faster (it can cause corruption if there's power loss or similar, but that doesn't matter in CI where we throw away the whole container anyway). Currently the build_ubuntu_20_04 job in GitLab CI takes 8-9 minutes to install dependencies. Using eatmydata it went down to 2 minutes.
56 lines
2.3 KiB
YAML
56 lines
2.3 KiB
YAML
variables:
|
|
DEBIAN_FRONTEND: "noninteractive"
|
|
|
|
include:
|
|
- https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-before.yml
|
|
- https://invent.kde.org/sysadmin/ci-tooling/raw/master/invent/ci-applications-linux.yml
|
|
|
|
build_ubuntu_20_04:
|
|
stage: build
|
|
image: ubuntu:focal
|
|
only:
|
|
- merge_requests
|
|
before_script:
|
|
- sed -i -e 's/# deb-src/deb-src/g' /etc/apt/sources.list
|
|
- apt-get update
|
|
- apt-get install --yes eatmydata
|
|
- eatmydata apt-get build-dep --yes --no-install-recommends okular
|
|
- eatmydata apt-get install --yes --no-install-recommends ninja-build
|
|
script:
|
|
- mkdir -p build && cd build
|
|
- cmake -DOKULAR_UI=desktop -G Ninja ..
|
|
- ninja
|
|
- rm -rf *
|
|
- cmake -DOKULAR_UI=mobile -G Ninja ..
|
|
- ninja
|
|
|
|
build_clazy_clang_tidy:
|
|
stage: build
|
|
image: debian:testing
|
|
only:
|
|
- merge_requests
|
|
before_script:
|
|
- echo 'deb-src http://deb.debian.org/debian unstable main' >> /etc/apt/sources.list
|
|
- apt-get update
|
|
- apt-get install --yes eatmydata
|
|
- eatmydata apt-get build-dep --yes --no-install-recommends okular
|
|
- eatmydata apt-get install --yes --no-install-recommends ninja-build clazy clang clang-tidy libkf5crash-dev libkf5purpose-dev libegl-dev jq
|
|
|
|
script:
|
|
- srcdir=`pwd` && mkdir -p /tmp/okular_build && cd /tmp/okular_build && CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja $srcdir && cat compile_commands.json | jq '[.[] | select(.file | contains("'"$srcdir"'"))]' > compile_commands.aux.json && cat compile_commands.aux.json | jq '[.[] | select(.file | contains("/synctex/")| not)]' > compile_commands.json && cp "$srcdir/.clang-tidy" .
|
|
- CLAZY_IGNORE_DIRS="settings_core.[cpp|h]|settings.[cpp.h]|pdfsettings.h|gssettings.h" CLAZY_CHECKS="level0,level1,level2,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,raw-environment-function,qproperty-type-mismatch" ninja
|
|
- run-clang-tidy
|
|
|
|
clang_format:
|
|
stage: build
|
|
image: debian:testing
|
|
only:
|
|
- merge_requests
|
|
- master
|
|
before_script:
|
|
- apt-get update
|
|
- apt-get install --yes --no-install-recommends git clang-format-10
|
|
script:
|
|
- find . \( -name "*.cpp" -or -name "*.h" -or -name "*.c" -or -name "*.cc" \) -exec clang-format-10 -i {} \;
|
|
- git diff --exit-code
|