-
Notifications
You must be signed in to change notification settings - Fork 4
/
.gitlab-ci.yml
112 lines (107 loc) · 4.89 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
include:
- project: sysadmin/ci-utilities
file:
- /gitlab-templates/linux.yml
- /gitlab-templates/linux-qt6.yml
- /gitlab-templates/freebsd.yml
- /gitlab-templates/freebsd-qt6.yml
- /gitlab-templates/android.yml
- /gitlab-templates/android-qt6.yml
build_ubuntu_20_10:
stage: build
image: ubuntu:groovy
tags:
- Linux
only:
- merge_requests
before_script:
- sed -i -e 's/# deb-src/deb-src/g' /etc/apt/sources.list
- sed -i -e 's/archive/old-releases/g' /etc/apt/sources.list
- sed -i -e 's/security.ubuntu/old-releases.ubuntu/g' /etc/apt/sources.list
- echo "91.189.91.124 old-releases.ubuntu.com" >> /etc/hosts
- apt update
- apt install --yes eatmydata
- eatmydata apt build-dep --yes --no-install-recommends qca2
- eatmydata apt install --yes --no-install-recommends ninja-build libbotan-2-dev libnss3-dev libgcrypt20-dev libpkcs11-helper1-dev gnupg
script:
- mkdir -p build && cd build
- cmake -G Ninja .. -DBUILD_PLUGINS=all
- ninja
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ ctest -V
build_fedora_34:
stage: build
image: fedora:34
tags:
- Linux
only:
- merge_requests
before_script:
- dnf -y --setopt=install_weak_deps=False install git gcc-c++ make cmake ninja-build qt6-qtbase-devel qt6-qt5compat-devel botan2-devel cyrus-sasl-devel nss-devel libgcrypt-devel pkcs11-helper-devel gnupg
script:
- mkdir -p build && cd build
- cmake -G Ninja -DBUILD_WITH_QT6=ON .. -DBUILD_PLUGINS=all
- ninja
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt6/ ctest -V
build_clazy_clang_tidy:
stage: build
image: debian:unstable
tags:
- Linux
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 qca2
- eatmydata apt-get install --yes --no-install-recommends ninja-build libbotan-2-dev libnss3-dev libgcrypt20-dev libpkcs11-helper1-dev clazy clang clang-tidy-14 jq gnupg
script:
- srcdir=`pwd` && mkdir -p /tmp/qca_build && cd /tmp/qca_build && CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -DBUILD_PLUGINS=all -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja $srcdir && cat compile_commands.json | jq '[.[] | select(.file | contains("'"$srcdir"'"))]' > compile_commands.aux.json && mv compile_commands.aux.json compile_commands.json
- CLAZY_CHECKS="level0,level1,level2,no-copyable-polymorphic,no-ctor-missing-parent-argument,isempty-vs-count,qhash-with-char-pointer-key,qproperty-type-mismatch,qrequiredresult-candidates,signal-with-return-value,thread-with-slots,tr-non-literal,unneeded-cast" ninja
- "run-clang-tidy-14 -header-filter='.*/qca/.*' -checks='-*,performance-*,modernize-deprecated-headers,modernize-make-unique,modernize-make-shared,modernize-use-override,modernize-use-equals-delete,modernize-use-emplace,modernize-use-bool-literals,modernize-redundant-void-arg,modernize-loop-convert,modernize-use-nullptr,-performance-no-automatic-move,-performance-no-int-to-ptr' -config=\"{WarningsAsErrors: '*'}\""
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ ctest -V
build_openssl3_botan3:
stage: build
image: debian:unstable
tags:
- Linux
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 qca2
- eatmydata apt-get install --yes --no-install-recommends ninja-build libnss3-dev libgcrypt20-dev libpkcs11-helper1-dev gnupg wget libz-dev
script:
- wget https://github.com/randombit/botan/archive/refs/tags/3.0.0.tar.gz
- tar xvfh 3.0.0.tar.gz
- cd botan-3.0.0
- ./configure.py --prefix="/usr" --with-zlib
- time make -j `nproc` install
- cd ..
- mkdir -p build && cd build
- cmake -G Ninja .. -DBUILD_PLUGINS=all
- ninja
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ bin/qcatool* --debug plugins > features-with-legacy
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ ctest -V
- echo "Now test without the legacy provider"
- ls /usr/lib/x86_64-linux-gnu/ossl-modules/legacy.so
- rm /usr/lib/x86_64-linux-gnu/ossl-modules/legacy.so
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ bin/qcatool* --debug plugins > features-without-legacy
- QT_PLUGIN_PATH=`pwd`/lib/qca-qt5/ ctest -V
- echo "Make sure there is a difference without the legacy provider"
- "! diff -u features-with-legacy features-without-legacy"
clang_format:
stage: build
image: debian:testing
tags:
- Linux
only:
- merge_requests
before_script:
- apt-get update
- apt-get install --yes --no-install-recommends git clang-format-16
script:
- find . \( -name "*.cpp" -or -name "*.h" -or -name "*.c" -or -name "*.cc" \) -exec clang-format-16 -i {} \;
- git diff --exit-code