blob: a92e96b56fcade180187c13f43f7addd19d7b05d [file] [log] [blame]
Sébastien Blin55be5da2024-02-12 11:29:54 -05001FROM ubuntu:22.04 AS build
Adrien Béraud57ea6142023-06-02 08:37:07 -04002
Sébastien Blin55be5da2024-02-12 11:29:54 -05003RUN apt-get update && apt-get install -y \
4 dialog apt-utils \
5 && apt-get clean \
6 && echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
Adrien Béraud57ea6142023-06-02 08:37:07 -04007
Sébastien Blin55be5da2024-02-12 11:29:54 -05008RUN apt-get update && apt-get install -y \
9 build-essential pkg-config cmake git wget \
10 libtool autotools-dev autoconf \
11 cython3 python3-dev python3-setuptools python3-build python3-virtualenv \
12 libncurses5-dev libreadline-dev nettle-dev libcppunit-dev \
13 libgnutls28-dev libuv1-dev libjsoncpp-dev libargon2-dev libunistring-dev \
Amnac9da2d72024-07-02 11:14:19 -040014 libssl-dev libfmt-dev libasio-dev libmsgpack-dev libyaml-cpp-dev \
François-Simon Fauteux-Chapleau74bc0412024-08-29 10:09:21 -040015 libupnp-dev libnatpmp-dev \
Sébastien Blin55be5da2024-02-12 11:29:54 -050016 && apt-get clean && rm -rf /var/lib/apt/lists/* /var/cache/apt/*
Adrien Béraud57ea6142023-06-02 08:37:07 -040017
18COPY . dhtnet
19
Sébastien Blin55be5da2024-02-12 11:29:54 -050020WORKDIR dhtnet
Adrien Béraud57ea6142023-06-02 08:37:07 -040021
Sébastien Blin55be5da2024-02-12 11:29:54 -050022RUN git submodule update --init --recursive
23
24RUN mkdir build_dev && cd build_dev \
25 && cmake .. -DBUILD_DEPENDENCIES=On -DCMAKE_INSTALL_PREFIX=/usr \
26 && make -j && make install
27
28FROM build AS test
29
30RUN apt-get update && apt-get install gcovr lcov -y
31
32RUN cd build_dev \
33 && cmake -DBUILD_TESTING=On -DCODE_COVERAGE=On .. \
34 && make -j \
35 && ctest -T Test -T Coverage \
36 && ctest -T coverage > /result.summary
37
38# Generate HTML report
39RUN cd build_dev/CMakeFiles/dhtnet.dir \
Sébastien Bline853f502024-02-12 15:56:39 -050040 && lcov --capture --no-external --directory /dhtnet --output-file coverage.info \
41 && mkdir /coverage \
42 && genhtml coverage.info --output-directory /coverage