mirror of
https://github.com/pavel-odintsov/fastnetmon
synced 2024-11-22 20:42:03 +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:
parent
e65727c849
commit
8266f01d50
25
.github/workflows/docker-builds.yml
vendored
Normal file
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
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)
|
25
tests/Dockerfile.debian-clang-15
Normal file
25
tests/Dockerfile.debian-clang-15
Normal file
@ -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)
|
18
tests/Dockerfile.debian-gcc-12
Normal file
18
tests/Dockerfile.debian-gcc-12
Normal file
@ -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)
|
20
tests/Dockerfile.ubuntu-24.04
Normal file
20
tests/Dockerfile.ubuntu-24.04
Normal file
@ -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
|
20
tests/Dockerfile.ubuntu-24.10
Normal file
20
tests/Dockerfile.ubuntu-24.10
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user