name: Packages on: push: branches: - master - 'support/*' pull_request: {} jobs: deb: name: .deb strategy: fail-fast: false matrix: distro: - name: debian codename: buster has32bit: true - name: debian codename: stretch has32bit: true - name: ubuntu codename: hirsute has32bit: false - name: ubuntu codename: groovy has32bit: false - name: ubuntu codename: focal has32bit: false - name: ubuntu codename: bionic has32bit: true 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 rpm: name: .rpm strategy: fail-fast: false matrix: distro: - name: centos release: 8 - name: centos release: 7 - name: fedora release: 34 - name: fedora release: 33 - name: sles release: '15.2' - name: sles release: '12.5' - name: opensuse release: '15.2' runs-on: ubuntu-latest steps: - name: Vars id: vars env: GITLAB_REGISTRY_RO_TOKEN: '${{ secrets.GITLAB_REGISTRY_RO_TOKEN }}' run: | if [ '${{ matrix.distro.name }}' = sles ]; then if [ "$(tr -d '\n' <<<"$GITLAB_REGISTRY_RO_TOKEN" |wc -c)" -eq 0 ]; then echo '::set-output name=CAN_BUILD::false' echo '::set-output name=NEED_LOGIN::false' else echo '::set-output name=CAN_BUILD::true' echo '::set-output name=NEED_LOGIN::true' fi else echo '::set-output name=CAN_BUILD::true' echo '::set-output name=NEED_LOGIN::false' fi - name: Checkout HEAD if: "steps.vars.outputs.CAN_BUILD == 'true'" uses: actions/checkout@v1 - name: Login if: "steps.vars.outputs.NEED_LOGIN == 'true'" env: GITLAB_REGISTRY_RO_TOKEN: '${{ secrets.GITLAB_REGISTRY_RO_TOKEN }}' run: | docker login registry.icinga.com -u build-docker/sles --password-stdin <<<"$GITLAB_REGISTRY_RO_TOKEN" - name: rpm-icinga2 if: "steps.vars.outputs.CAN_BUILD == 'true'" run: | set -exo pipefail git clone https://git.icinga.com/packaging/rpm-icinga2.git chmod o+w rpm-icinga2 - name: Restore/backup ccache if: "steps.vars.outputs.CAN_BUILD == 'true'" id: ccache uses: actions/cache@v1 with: path: rpm-icinga2/ccache key: |- ${{ matrix.distro.name }}/${{ matrix.distro.release }}-ccache-${{ hashFiles('rpm-icinga2/ccache') }} - name: Binary if: "steps.vars.outputs.CAN_BUILD == 'true'" run: | set -exo pipefail git checkout -B master if [ -e rpm-icinga2/ccache ]; then chmod -R o+w rpm-icinga2/ccache fi docker run --rm \ -v "$(pwd)/rpm-icinga2:/rpm-icinga2" \ -v "$(pwd)/.git:/icinga2.git:ro" \ -w /rpm-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.release }} \ icinga-build-package - name: Test if: "steps.vars.outputs.CAN_BUILD == 'true'" run: | set -exo pipefail docker run --rm \ -v "$(pwd)/rpm-icinga2:/rpm-icinga2" \ -w /rpm-icinga2 \ -e ICINGA_BUILD_PROJECT=icinga2 \ -e ICINGA_BUILD_TYPE=snapshot \ registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.release }} \ icinga-build-test raspbian: name: Raspbian strategy: fail-fast: false matrix: codename: - buster 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 windows: name: Windows strategy: fail-fast: false matrix: bits: [32, 64] runs-on: windows-latest env: BITS: '${{ matrix.bits }}' ICINGA_BUILD_TYPE: snapshot UPSTREAM_GIT_URL: file://D:/a/icinga2/icinga2/.git steps: - name: Checkout HEAD uses: actions/checkout@v1 - name: windows-icinga2 run: | git clone https://git.icinga.com/packaging/windows-icinga2.git - name: Build tools run: | & .\doc\win-dev.ps1 - name: Source run: | git checkout -B master cd windows-icinga2 & .\source.ps1 - name: Binary working-directory: windows-icinga2 run: | New-Item -ItemType Directory -Path 'C:\Program Files\Icinga2\WillBeRemoved' -ErrorAction SilentlyContinue & .\build.ps1