From 0915b3ef56dfac3113cce55a59a5765dc94976be Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 28 Apr 2024 14:34:54 +0200 Subject: Adding upstream version 2.13.6. Signed-off-by: Daniel Baumann --- .github/workflows/deb.yml | 119 +++++++++++++++++++++++++++++++++ .github/workflows/docker.yml | 29 ++++++++ .github/workflows/raspbian.yml | 90 +++++++++++++++++++++++++ .github/workflows/rpm.yml | 148 +++++++++++++++++++++++++++++++++++++++++ .github/workflows/windows.yml | 48 +++++++++++++ 5 files changed, 434 insertions(+) create mode 100644 .github/workflows/deb.yml create mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/raspbian.yml create mode 100644 .github/workflows/rpm.yml create mode 100644 .github/workflows/windows.yml (limited to '.github/workflows') diff --git a/.github/workflows/deb.yml b/.github/workflows/deb.yml new file mode 100644 index 0000000..f77bc35 --- /dev/null +++ b/.github/workflows/deb.yml @@ -0,0 +1,119 @@ +name: .deb + +on: + push: + branches: + - master + - 'support/*' + pull_request: {} + +jobs: + deb: + name: .deb + + strategy: + fail-fast: false + 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: Cancel previous jobs for the same PR + if: "github.event_name == 'pull_request'" + uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc + with: + workflow_id: deb.yml,docker.yml,raspbian.yml,rpm.yml,windows.yml + access_token: ${{ secrets.GITHUB_TOKEN }} + + - 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 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..6385f78 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,29 @@ +name: Docker image + +on: + pull_request: {} + push: + branches: + - master + - 'support/*' + release: + types: + - published + +jobs: + docker: + runs-on: ubuntu-latest + + steps: + - name: Cancel previous jobs for the same PR + if: "github.event_name == 'pull_request'" + uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc + with: + workflow_id: deb.yml,docker.yml,raspbian.yml,rpm.yml,windows.yml + access_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker image + uses: Icinga/docker-icinga2@master + env: + INPUT_TOKEN: '${{ github.token }}' + DOCKER_HUB_PASSWORD: '${{ secrets.DOCKER_HUB_PERSONAL_TOKEN }}' diff --git a/.github/workflows/raspbian.yml b/.github/workflows/raspbian.yml new file mode 100644 index 0000000..4794605 --- /dev/null +++ b/.github/workflows/raspbian.yml @@ -0,0 +1,90 @@ +name: Raspbian + +on: + push: + branches: + - master + - 'support/*' + pull_request: {} + +jobs: + raspbian: + name: Raspbian + + strategy: + fail-fast: false + matrix: + codename: + - buster + - bullseye + + runs-on: ubuntu-22.04 # revert back to ubuntu-latest once that is 22.04 or later + + steps: + - name: Cancel previous jobs for the same PR + if: "github.event_name == 'pull_request'" + uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc + with: + workflow_id: deb.yml,docker.yml,raspbian.yml,rpm.yml,windows.yml + access_token: ${{ secrets.GITHUB_TOKEN }} + + - 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 diff --git a/.github/workflows/rpm.yml b/.github/workflows/rpm.yml new file mode 100644 index 0000000..d3be406 --- /dev/null +++ b/.github/workflows/rpm.yml @@ -0,0 +1,148 @@ +name: .rpm + +on: + push: + branches: + - master + - 'support/*' + pull_request: {} + +jobs: + rpm: + name: .rpm (${{ matrix.distro.name }}, ${{ matrix.distro.release }}) + + strategy: + fail-fast: false + matrix: + 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: fedora + release: 35 + subscription: false + - name: sles + release: '15.4' + subscription: true + - name: sles + release: '15.3' + subscription: true + - name: sles + release: '12.5' + subscription: true + - name: opensuse + release: '15.4' + subscription: false + - name: opensuse + release: '15.3' + subscription: false + + runs-on: ubuntu-latest + + steps: + - name: Cancel previous jobs for the same PR + if: "github.event_name == 'pull_request'" + uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc + with: + workflow_id: deb.yml,docker.yml,raspbian.yml,rpm.yml,windows.yml + access_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Vars + id: vars + env: + GITLAB_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + if [ ${{ matrix.distro.subscription }} = true ]; then + if [ "$(tr -d '\n' <<<"$GITLAB_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_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + docker login registry.icinga.com -u github-actions --password-stdin <<<"$GITLAB_RO_TOKEN" + + - name: rpm-icinga2 + if: "steps.vars.outputs.CAN_BUILD == 'true' && !matrix.distro.subscription" + run: | + set -exo pipefail + git clone https://git.icinga.com/packaging/rpm-icinga2.git + chmod o+w rpm-icinga2 + + - name: subscription-rpm-icinga2 + if: "steps.vars.outputs.CAN_BUILD == 'true' && matrix.distro.subscription" + env: + GITLAB_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + set -exo pipefail + git config --global credential.helper store + cat <~/.git-credentials + https://github-actions:${GITLAB_RO_TOKEN}@git.icinga.com + EOF + git clone https://git.icinga.com/packaging/subscription-rpm-icinga2.git rpm-icinga2 + 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 diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000..a8417a5 --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,48 @@ +name: Windows + +on: + push: + branches: + - master + - 'support/*' + pull_request: {} + +jobs: + windows: + name: Windows + + strategy: + fail-fast: false + matrix: + bits: [32, 64] + + runs-on: windows-2019 + + 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 -- cgit v1.2.3