summaryrefslogtreecommitdiffstats
path: root/.github/workflows/linux.bash
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/linux.bash')
-rwxr-xr-x.github/workflows/linux.bash95
1 files changed, 95 insertions, 0 deletions
diff --git a/.github/workflows/linux.bash b/.github/workflows/linux.bash
new file mode 100755
index 0000000..fe0e7d5
--- /dev/null
+++ b/.github/workflows/linux.bash
@@ -0,0 +1,95 @@
+#!/bin/bash
+set -exo pipefail
+
+export PATH="/usr/lib/ccache:/usr/lib64/ccache:/opt/rh/devtoolset-11/root/usr/bin:$PATH"
+export CCACHE_DIR=/icinga2/ccache
+export CTEST_OUTPUT_ON_FAILURE=1
+CMAKE_OPTS=''
+
+case "$DISTRO" in
+ amazonlinux:2)
+ amazon-linux-extras install -y epel
+ yum install -y bison ccache cmake3 gcc-c++ flex ninja-build \
+ {libedit,mariadb,ncurses,openssl,postgresql,systemd}-devel
+
+ yum install -y bzip2 tar wget
+ wget https://boostorg.jfrog.io/artifactory/main/release/1.69.0/source/boost_1_69_0.tar.bz2
+ tar -xjf boost_1_69_0.tar.bz2
+
+ (
+ cd boost_1_69_0
+ ./bootstrap.sh --with-libraries=context,coroutine,date_time,filesystem,iostreams,program_options,regex,system,test,thread
+ ./b2
+ )
+
+ ln -vs /usr/bin/cmake3 /usr/local/bin/cmake
+ ln -vs /usr/bin/ninja-build /usr/local/bin/ninja
+ CMAKE_OPTS='-DBOOST_INCLUDEDIR=/boost_1_69_0 -DBOOST_LIBRARYDIR=/boost_1_69_0/stage/lib'
+ export LD_LIBRARY_PATH=/boost_1_69_0/stage/lib
+ ;;
+
+ amazonlinux:20*)
+ dnf install -y bison cmake flex gcc-c++ ninja-build \
+ {boost,libedit,mariadb1\*,ncurses,openssl,postgresql,systemd}-devel
+ ;;
+
+ centos:*)
+ yum install -y centos-release-scl epel-release
+ yum install -y bison ccache cmake3 devtoolset-11-gcc-c++ flex ninja-build \
+ {boost169,libedit,mariadb,ncurses,openssl,postgresql,systemd}-devel
+
+ ln -vs /usr/bin/cmake3 /usr/local/bin/cmake
+ ln -vs /usr/bin/ccache /usr/lib64/ccache/g++
+ CMAKE_OPTS='-DBOOST_INCLUDEDIR=/usr/include/boost169 -DBOOST_LIBRARYDIR=/usr/lib64/boost169'
+ ;;
+
+ debian:*|ubuntu:*)
+ apt-get update
+ DEBIAN_FRONTEND=noninteractive apt-get install --no-install-{recommends,suggests} -y bison \
+ ccache cmake flex g++ lib{boost-all,edit,mariadb,ncurses,pq,ssl,systemd}-dev ninja-build tzdata
+ ;;
+
+ fedora:*)
+ dnf install -y bison ccache cmake flex gcc-c++ ninja-build \
+ {boost,libedit,mariadb,ncurses,openssl,postgresql,systemd}-devel
+ ;;
+
+ opensuse/*)
+ zypper in -y bison ccache cmake flex gcc-c++ ninja {lib{edit,mariadb,openssl},ncurses,postgresql,systemd}-devel \
+ libboost_{context,coroutine,filesystem,iostreams,program_options,regex,system,test,thread}-devel
+ ;;
+
+ rockylinux:*)
+ dnf install -y 'dnf-command(config-manager)' epel-release
+
+ case "$DISTRO" in
+ *:8)
+ dnf config-manager --enable powertools
+ ;;
+ *)
+ dnf config-manager --enable crb
+ ;;
+ esac
+
+ dnf install -y bison ccache cmake gcc-c++ flex ninja-build \
+ {boost,libedit,mariadb,ncurses,openssl,postgresql,systemd}-devel
+ ;;
+esac
+
+mkdir /icinga2/build
+cd /icinga2/build
+
+cmake \
+ -GNinja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DICINGA2_UNITY_BUILD=ON \
+ -DUSE_SYSTEMD=ON \
+ -DICINGA2_USER=$(id -un) \
+ -DICINGA2_GROUP=$(id -gn) \
+ $CMAKE_OPTS ..
+
+ninja
+
+ninja test
+ninja install
+icinga2 daemon -C