1
0
mirror of https://github.com/pavel-odintsov/fastnetmon synced 2024-11-23 00:52:00 +01:00

workflows,dockerfiles: Add basic build tests (#1011)

Add simple build tests using github workflows.
This is initial commit, and i suggest to inspect
if all dependencies installed.

Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
This commit is contained in:
Denys Fedoryshchenko 2024-07-16 00:42:55 +03:00 committed by GitHub
parent e65727c849
commit 8266f01d50
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 125 additions and 0 deletions

25
.github/workflows/docker-builds.yml vendored Normal file

@ -0,0 +1,25 @@
name: Run docker builds
on:
workflow_dispatch:
pull_request:
push:
branches:
- master
jobs:
build_in_docker:
strategy:
matrix:
# gcc-13+,clang-16+ will fail due broken capnp supplied with debian bookworm
os: [debian, debian-gcc-12, debian-clang-15, ubuntu-24.04, ubuntu-24.10]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: chdir
run: cd $GITHUB_WORKSPACE
- name: Build Docker image
run: docker build -t debian -f tests/Dockerfile.${{ matrix.os }} .

17
tests/Dockerfile.debian Normal file

@ -0,0 +1,17 @@
FROM debian:bookworm
# non-interactive
ENV DEBIAN_FRONTEND noninteractive
# install build dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git ca-certificates cmake libssl-dev\
capnproto libcapnp-dev libelf-dev libbpf-dev libpcap-dev libgrpc-dev libgrpc++-dev libprotobuf-dev\
protobuf-compiler libprotoc-dev libprotobuf-dev protobuf-compiler-grpc libboost-dev\
libboost-serialization-dev libboost-thread-dev libboost-regex-dev libboost-program-options-dev\
libmongoc-dev liblog4cpp5-dev libncurses5-dev
COPY src/ /src/
WORKDIR /src
RUN mkdir build && cd build && cmake .. -DLINK_WITH_ABSL=ON\
&& make -j$(nproc)

@ -0,0 +1,25 @@
FROM debian:bookworm
# non-interactive
ENV DEBIAN_FRONTEND noninteractive
# install build dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git ca-certificates cmake libssl-dev\
capnproto libcapnp-dev libelf-dev libbpf-dev libpcap-dev libgrpc-dev libgrpc++-dev libprotobuf-dev\
protobuf-compiler libprotoc-dev libprotobuf-dev protobuf-compiler-grpc libboost-dev\
libboost-serialization-dev libboost-thread-dev libboost-regex-dev libboost-program-options-dev\
libmongoc-dev liblog4cpp5-dev libncurses-dev
# install clang-15
RUN apt-get install -y --no-install-recommends clang-15
# set clang-15 as default compiler
RUN update-alternatives --install /usr/bin/cc cc /usr/bin/clang-15 100
RUN update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-15 100
COPY src/ /src/
WORKDIR /src
RUN mkdir build && cd build && cmake .. -DLINK_WITH_ABSL=ON\
&& make -j$(nproc)

@ -0,0 +1,18 @@
FROM gcc:12-bookworm
# non-interactive
ENV DEBIAN_FRONTEND noninteractive
# install build dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git ca-certificates cmake libssl-dev\
capnproto libcapnp-dev libelf-dev libbpf-dev libpcap-dev libgrpc-dev libgrpc++-dev libprotobuf-dev\
protobuf-compiler libprotoc-dev libprotobuf-dev protobuf-compiler-grpc libboost-dev\
libboost-serialization-dev libboost-thread-dev libboost-regex-dev libboost-program-options-dev\
libmongoc-dev liblog4cpp5-dev
COPY src/ /src/
WORKDIR /src
RUN mkdir build && cd build && cmake .. -DLINK_WITH_ABSL=ON\
&& make -j$(nproc)

@ -0,0 +1,20 @@
FROM ubuntu:24.04
# non-interactive
ENV DEBIAN_FRONTEND noninteractive
# install build dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git ca-certificates cmake libssl-dev\
capnproto libcapnp-dev libelf-dev libbpf-dev libpcap-dev libgrpc-dev libgrpc++-dev libprotobuf-dev\
protobuf-compiler libprotoc-dev libprotobuf-dev protobuf-compiler-grpc libboost-dev\
libboost-serialization-dev libboost-thread-dev libboost-regex-dev libboost-program-options-dev\
libmongoc-dev liblog4cpp5-dev libncurses5-dev
# absl
RUN apt-get install -y --no-install-recommends libabsl-dev
COPY src/ /src/
WORKDIR /src
RUN mkdir build && cd build && cmake .. -DLINK_WITH_ABSL=ON\
&& make

@ -0,0 +1,20 @@
FROM ubuntu:24.10
# non-interactive
ENV DEBIAN_FRONTEND noninteractive
# install build dependencies
RUN apt-get update
RUN apt-get install -y --no-install-recommends build-essential git ca-certificates cmake libssl-dev\
capnproto libcapnp-dev libelf-dev libbpf-dev libpcap-dev libgrpc-dev libgrpc++-dev libprotobuf-dev\
protobuf-compiler libprotoc-dev libprotobuf-dev protobuf-compiler-grpc libboost-dev\
libboost-serialization-dev libboost-thread-dev libboost-regex-dev libboost-program-options-dev\
libmongoc-dev liblog4cpp5-dev libncurses5-dev
# absl
RUN apt-get install -y --no-install-recommends libabsl-dev
COPY src/ /src/
WORKDIR /src
RUN mkdir build && cd build && cmake .. -DLINK_WITH_ABSL=ON\
&& make