icinga2/.github/workflows/linux.yml
Julian Brost 9e5882ea04 GitHub Actions: remove Ubuntu 24.10 (end of life)
That version went out of support in July 2025 [1] and by now the repos got
archived and causes pipelines to fail [2]:

   Err:5 http://security.ubuntu.com/ubuntu oracular-security Release
     404  Not Found [IP: 185.125.190.83 80]
   Err:6 http://archive.ubuntu.com/ubuntu oracular Release
     404  Not Found [IP: 185.125.190.36 80]
   Err:7 http://archive.ubuntu.com/ubuntu oracular-updates Release
     404  Not Found [IP: 185.125.190.36 80]
   Err:8 http://archive.ubuntu.com/ubuntu oracular-backports Release
     404  Not Found [IP: 185.125.190.36 80]

[1]: https://ubuntu.com/about/release-cycle
[2]: https://github.com/Icinga/icinga2/actions/runs/17671678861/job/50224642536#step:5:25
2025-09-15 09:03:42 +02:00

87 lines
2.3 KiB
YAML

name: Linux
on:
push:
branches:
- master
- 'support/*'
pull_request: {}
concurrency:
group: linux-${{ github.event_name == 'push' && github.sha || github.ref }}
cancel-in-progress: true
jobs:
linux:
name: ${{ matrix.distro }}${{ matrix.platform != 'linux/amd64' && format(' ({0})', matrix.platform) || '' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 2
matrix:
distro:
# Alpine Linux to build Icinga 2 with LibreSSL, OpenBSD's default.
# The "alpine:bash" image will be built below based on "alpine:3".
- alpine:bash
- amazonlinux:2
- amazonlinux:2023
# Raspberry Pi OS is close enough to Debian to test just one of them.
# Its architecture is different, though, and covered by the Docker job.
- debian:11
- debian:12
- debian:13
- fedora:39
- fedora:40
- fedora:41
- fedora:42
- opensuse/leap:15.5
- opensuse/leap:15.6
# We don't actually support Rocky Linux as such!
# We just use that RHEL clone to test the original.
- rockylinux:8
- rockylinux:9
- rockylinux/rockylinux:10
- registry.suse.com/suse/sle15:15.5
- registry.suse.com/suse/sle15:15.6
- registry.suse.com/suse/sle15:15.7
- ubuntu:22.04
- ubuntu:24.04
- ubuntu:25.04
platform:
- linux/amd64
include:
- distro: debian:11
platform: linux/386
- distro: debian:12
platform: linux/386
steps:
- name: Checkout HEAD
uses: actions/checkout@v5
- name: Restore/backup ccache
uses: actions/cache@v4
with:
path: ccache
key: ccache/${{ matrix.distro }}
- name: Build Alpine Docker Image
if: "matrix.distro == 'alpine:bash'"
run: >-
docker build --file .github/workflows/alpine-bash.Dockerfile
--tag alpine:bash `mktemp -d`
- name: Build Icinga
run: >-
docker run --rm -v "$(pwd):/icinga2" -e DISTRO=${{ matrix.distro }}
--platform ${{ matrix.platform }} ${{ matrix.distro }} /icinga2/.github/workflows/linux.bash