All checks were successful
CI Code / Check spelling (push) Successful in 18s
CI Code / Check coding style (push) Successful in 31s
CI Code / Code Coverage (push) Successful in 15m25s
CI Code / Linux (debian) (push) Successful in 15m57s
CI Code / Linux (ubuntu) (push) Successful in 16m0s
CI Code / Linux (arch) (push) Successful in 16m6s
Split functional tests into 4 parallel groups and add check-functional-parallel target (~3x faster CI runs). Add branch-aware LCOV coverage reporting with new --enable-coverage option and lcov summary in CI pipeline. Enable ccache via -C configure flag for faster recompilations. Install lcov in all Docker images and use --depth 1 git clones + parallel make -j$(nproc) for quicker container builds. Update CONTRIBUTING.md with instructions for parallel test groups and adding new ones. All changes are tightly related CI/performance improvements developed in sequence. No external service uploads (e.g. Codecov skipped due to Gitea incompatibility).
77 lines
1.6 KiB
Docker
77 lines
1.6 KiB
Docker
FROM archlinux
|
|
|
|
ENV TERM=xterm
|
|
ENV CC="ccache gcc"
|
|
|
|
RUN pacman -Syu --noconfirm
|
|
# reflector is optional - if it fails due to network issues, continue with default mirrorlist
|
|
RUN pacman -S --needed --noconfirm reflector && \
|
|
(reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist || true)
|
|
RUN pacman-key --init
|
|
RUN pacman -S --needed --noconfirm \
|
|
autoconf \
|
|
autoconf-archive \
|
|
automake \
|
|
base-devel \
|
|
ccache \
|
|
check \
|
|
cmake \
|
|
cmocka \
|
|
lcov \
|
|
curl \
|
|
debuginfod \
|
|
doxygen \
|
|
expat \
|
|
gcc \
|
|
git \
|
|
gpgme \
|
|
gtk3 \
|
|
libgcrypt \
|
|
libmicrohttpd \
|
|
libnotify \
|
|
libsignal-protocol-c \
|
|
libotr \
|
|
libtool \
|
|
libxss \
|
|
make \
|
|
openssl \
|
|
pkg-config \
|
|
python \
|
|
wget \
|
|
sqlite \
|
|
valgrind \
|
|
gdk-pixbuf2 \
|
|
qrencode
|
|
|
|
RUN mkdir -p /usr/src/{stabber,profanity}
|
|
|
|
RUN useradd -mb /usr/src --shell=/bin/false aur && usermod -L aur
|
|
USER aur
|
|
|
|
WORKDIR /usr/src/aur
|
|
|
|
# NOTE: These will change their extension to .tar.zst if a new snapshot is built
|
|
# due to:
|
|
# https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/
|
|
RUN wget https://aur.archlinux.org/cgit/aur.git/snapshot/libstrophe-git.tar.gz
|
|
|
|
RUN tar -zxvf libstrophe-git.tar.gz
|
|
|
|
RUN pushd libstrophe-git && makepkg && popd
|
|
|
|
USER root
|
|
|
|
RUN pacman -U --noconfirm libstrophe-git/libstrophe-git-*.pkg.tar.zst
|
|
|
|
WORKDIR /usr/src
|
|
RUN git clone --depth 1 -c http.sslverify=false https://git.jabber.space/devs/stabber
|
|
|
|
WORKDIR /usr/src/stabber
|
|
RUN ./bootstrap.sh
|
|
RUN ./configure --prefix=/usr --disable-dependency-tracking
|
|
RUN make -j$(nproc)
|
|
RUN make install
|
|
|
|
WORKDIR /usr/src/profanity
|
|
COPY . /usr/src/profanity
|