mirror of https://github.com/Icinga/icinga2.git
Merge pull request #9640 from Icinga/gha-repair
GHA: build Icinga 2 from source
This commit is contained in:
commit
2a4c9166c9
|
@ -1,117 +0,0 @@
|
||||||
name: .deb
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- 'support/*'
|
|
||||||
pull_request: {}
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: deb-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deb:
|
|
||||||
name: .deb
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
max-parallel: 1
|
|
||||||
matrix:
|
|
||||||
distro:
|
|
||||||
- name: debian
|
|
||||||
codename: bullseye
|
|
||||||
has32bit: true
|
|
||||||
- name: debian
|
|
||||||
codename: buster
|
|
||||||
has32bit: true
|
|
||||||
- name: ubuntu
|
|
||||||
codename: jammy
|
|
||||||
has32bit: false
|
|
||||||
- name: ubuntu
|
|
||||||
codename: focal
|
|
||||||
has32bit: false
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout HEAD
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
|
|
||||||
- name: deb-icinga2
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
git clone https://git.icinga.com/packaging/deb-icinga2.git
|
|
||||||
chmod o+w deb-icinga2
|
|
||||||
|
|
||||||
- name: Source
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
git checkout -B master
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/deb-icinga2:/deb-icinga2" \
|
|
||||||
-v "$(pwd)/.git:/icinga2.git:ro" \
|
|
||||||
-w /deb-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
-e UPSTREAM_GIT_URL=file:///icinga2.git \
|
|
||||||
registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.codename }} \
|
|
||||||
icinga-build-deb-source
|
|
||||||
|
|
||||||
- name: Restore/backup ccache
|
|
||||||
id: ccache
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: deb-icinga2/ccache
|
|
||||||
key: |-
|
|
||||||
${{ matrix.distro.name }}/${{ matrix.distro.codename }}-ccache-${{ hashFiles('deb-icinga2/ccache') }}
|
|
||||||
|
|
||||||
- name: Binary x64
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
if [ -e deb-icinga2/ccache ]; then
|
|
||||||
chmod -R o+w deb-icinga2/ccache
|
|
||||||
fi
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/deb-icinga2:/deb-icinga2" \
|
|
||||||
-w /deb-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.codename }} \
|
|
||||||
icinga-build-deb-binary
|
|
||||||
|
|
||||||
- name: Binary x86
|
|
||||||
if: matrix.distro.has32bit
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/deb-icinga2:/deb-icinga2" \
|
|
||||||
-w /deb-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.codename }}:x86 \
|
|
||||||
icinga-build-deb-binary
|
|
||||||
|
|
||||||
- name: Test x64
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/deb-icinga2:/deb-icinga2" \
|
|
||||||
-w /deb-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.codename }} \
|
|
||||||
icinga-build-test
|
|
||||||
|
|
||||||
- name: Test x86
|
|
||||||
if: matrix.distro.has32bit
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/deb-icinga2:/deb-icinga2" \
|
|
||||||
-w /deb-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.codename }}:x86 \
|
|
||||||
icinga-build-test
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
#!/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:*)
|
||||||
|
amazon-linux-extras install -y epel
|
||||||
|
yum install -y bison ccache cmake 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/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
|
||||||
|
;;
|
||||||
|
|
||||||
|
centos:*)
|
||||||
|
yum install -y centos-release-scl epel-release
|
||||||
|
yum install -y bison ccache cmake devtoolset-11-gcc-c++ flex ninja-build \
|
||||||
|
{boost169,libedit,mariadb,ncurses,openssl,postgresql,systemd}-devel
|
||||||
|
|
||||||
|
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 ..
|
||||||
|
|
||||||
|
ccache -z
|
||||||
|
ninja
|
||||||
|
ccache -s
|
||||||
|
|
||||||
|
ninja test
|
||||||
|
ninja install
|
||||||
|
icinga2 daemon -C
|
|
@ -0,0 +1,51 @@
|
||||||
|
name: Linux
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- 'support/*'
|
||||||
|
pull_request: {}
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: linux-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linux:
|
||||||
|
name: ${{ matrix.distro }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
max-parallel: 2
|
||||||
|
matrix:
|
||||||
|
distro:
|
||||||
|
- amazonlinux:2
|
||||||
|
- centos:7 # and RHEL 7
|
||||||
|
- debian:10
|
||||||
|
- debian:11 # and Raspbian 11
|
||||||
|
- fedora:36
|
||||||
|
- fedora:37
|
||||||
|
- opensuse/leap:15.3 # and SLES 15.3
|
||||||
|
- opensuse/leap:15.4 # and SLES 15.4
|
||||||
|
- rockylinux:8 # RHEL 8
|
||||||
|
- rockylinux:9 # RHEL 9
|
||||||
|
- ubuntu:20.04
|
||||||
|
- ubuntu:22.04
|
||||||
|
- ubuntu:22.10
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout HEAD
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Restore/backup ccache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ccache
|
||||||
|
key: ccache/${{ matrix.distro }}
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: >-
|
||||||
|
docker run --rm -v "$(pwd):/icinga2" -e DISTRO=${{ matrix.distro }}
|
||||||
|
${{ matrix.distro }} /icinga2/.github/workflows/linux.bash
|
|
@ -1,87 +0,0 @@
|
||||||
name: Raspbian
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
- 'support/*'
|
|
||||||
pull_request: {}
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: raspbian-${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
raspbian:
|
|
||||||
name: Raspbian
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
max-parallel: 1
|
|
||||||
matrix:
|
|
||||||
codename:
|
|
||||||
- bullseye
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout HEAD
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
|
|
||||||
- name: qemu-user-static
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
sudo apt-get update
|
|
||||||
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y qemu-user-static
|
|
||||||
|
|
||||||
- name: raspbian-icinga2
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
git clone https://git.icinga.com/packaging/raspbian-icinga2.git
|
|
||||||
chmod o+w raspbian-icinga2
|
|
||||||
|
|
||||||
- name: Restore/backup ccache
|
|
||||||
id: ccache
|
|
||||||
uses: actions/cache@v1
|
|
||||||
with:
|
|
||||||
path: raspbian-icinga2/ccache
|
|
||||||
key: |-
|
|
||||||
raspbian/${{ matrix.codename }}-ccache-${{ hashFiles('raspbian-icinga2/ccache') }}
|
|
||||||
|
|
||||||
- name: Binary
|
|
||||||
run: |
|
|
||||||
set -exo pipefail
|
|
||||||
git checkout -B master
|
|
||||||
if [ -e raspbian-icinga2/ccache ]; then
|
|
||||||
chmod -R o+w raspbian-icinga2/ccache
|
|
||||||
fi
|
|
||||||
docker run --rm \
|
|
||||||
-v "$(pwd)/raspbian-icinga2:/raspbian-icinga2" \
|
|
||||||
-v "$(pwd)/.git:/icinga2.git:ro" \
|
|
||||||
-w /raspbian-icinga2 \
|
|
||||||
-e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
-e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
-e UPSTREAM_GIT_URL=file:///icinga2.git \
|
|
||||||
-e ICINGA_BUILD_DEB_DEFAULT_ARCH=armhf \
|
|
||||||
registry.icinga.com/build-docker/raspbian/${{ matrix.codename }} \
|
|
||||||
icinga-build-package
|
|
||||||
|
|
||||||
# Setting up icinga2-bin (2.12.0+rc1.25.g5d1c82a3d.20200526.0754+buster-0) ...
|
|
||||||
# enabling default icinga2 features
|
|
||||||
# qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6015c75c
|
|
||||||
# qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x6015c75c
|
|
||||||
# qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x600016ea
|
|
||||||
# dpkg: error processing package icinga2-bin (--configure):
|
|
||||||
# installed icinga2-bin package post-installation script subprocess returned error exit status 127
|
|
||||||
#
|
|
||||||
# - name: Test
|
|
||||||
# run: |
|
|
||||||
# set -exo pipefail
|
|
||||||
# docker run --rm \
|
|
||||||
# -v "$(pwd)/raspbian-icinga2:/raspbian-icinga2" \
|
|
||||||
# -w /raspbian-icinga2 \
|
|
||||||
# -e ICINGA_BUILD_PROJECT=icinga2 \
|
|
||||||
# -e ICINGA_BUILD_TYPE=snapshot \
|
|
||||||
# -e ICINGA_BUILD_DEB_DEFAULT_ARCH=armhf \
|
|
||||||
# registry.icinga.com/build-docker/raspbian/${{ matrix.codename }} \
|
|
||||||
# icinga-build-test
|
|
|
@ -20,30 +20,9 @@ jobs:
|
||||||
max-parallel: 1
|
max-parallel: 1
|
||||||
matrix:
|
matrix:
|
||||||
distro:
|
distro:
|
||||||
- name: rhel
|
|
||||||
release: 8
|
|
||||||
subscription: true
|
|
||||||
- name: rhel
|
|
||||||
release: 7
|
|
||||||
subscription: true
|
|
||||||
- name: centos
|
|
||||||
release: 7
|
|
||||||
subscription: false
|
|
||||||
- name: amazon-linux
|
|
||||||
release: al2:x86_64
|
|
||||||
subscription: true
|
|
||||||
- name: fedora
|
|
||||||
release: 36
|
|
||||||
subscription: false
|
|
||||||
- name: sles
|
|
||||||
release: '15.4'
|
|
||||||
subscription: true
|
|
||||||
- name: sles
|
- name: sles
|
||||||
release: '12.5'
|
release: '12.5'
|
||||||
subscription: true
|
subscription: true
|
||||||
- name: opensuse
|
|
||||||
release: '15.4'
|
|
||||||
subscription: false
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue