diff --git a/pkg/rules/packages-to-build.yml b/pkg/rules/packages-to-build.yml index e83b0d70a..b9fee09e7 100644 --- a/pkg/rules/packages-to-build.yml +++ b/pkg/rules/packages-to-build.yml @@ -11,35 +11,43 @@ image: - "debian:buster" # debian/10 - "debian:bullseye" # debian/11 - "debian:bookworm" # debian/12 - - "centos:7" - "rockylinux:8" # compatible with EOL centos:8 + - 'rockylinux:9' target: - "x86_64" +test-image: + # Set 'test-image' to the empty string for all matrix permutations so that + # the default ('image') will be used to launch an LXC container to test the + # created packages in. Why explicitly set what is already the default? + # If this isn't present, later entries in the include set below will + # overwrite earlier entries that differ only by their 'test-image' value. + # If however 'test-image' is present in the original matrix by defining it + # here, then 'included' entries will no longer overwrite each other because + # they alter a key that is present in the original matrix. This is just how + # GitHub Actions matrix include rules work. + - "" include: - # cargo-generate-rpm doesn't support specifying feature variations in Cargo.toml so we have to do it via - # custom build arguments instead. - # For CentOS 7 we want to statically link with OpenSSL, but `cargo generate-rpm` doesn't build the code for - # us unlike `cargo deb`, so we have to control the feature set used for building ourselves rather than in - # `Cargo.toml`. - - image: "centos:7" - extra_build_args: "--features static-openssl" - rpm_systemd_service_unit_file: pkg/common/krill-ubuntu-xenial.krill.service - - # CentOS 8 became EOL and is in theory still usable as a build container as there is still a Docker image - # available, and package installation can be done by switching the yum config in the container to use packages - # from the CentOS 8 vault rather than the now offline actual CentOS 8 repository. However, due to experiencing - # lots of timed out connections to the vault we will build the CentOS 8 compatible package in a Rocky Linux - # container instead, as Rocky Linux is 100% compatible with CentOS 8. The server at packages.nlnetlabs.nl - # however has a repo for CentOS 8, not Rocky Linux, and determines the repo to publish in based on the name of - # the archive that we produce below which is in turn based by default on the container image used to build. We - # therefore in this case need to specify that the O/S we are building for has a different name than the Docker - # image we are building it in. + # CentOS 8 became EOL and is in theory still usable as a build container + # as there is still a Docker image available, and package installation can + # be done by switching the yum config in the container to use packages + # from the CentOS 8 vault rather than the now offline actual CentOS 8 + # repository. However, due to experiencing lots of timed out connections to + # the vault we will build the CentOS 8 compatible package in a Rocky Linux + # container instead, as Rocky Linux is 100% compatible with CentOS 8. The + # server at packages.nlnetlabs.nl however has a repo for CentOS 8, not + # Rocky Linux, and determines the repo to publish in based on the name of + # the archive that we produce below which is in turn based by default on + # the container image used to build. We therefore in this case need to + # specify that the O/S we are building for has a different name than the + # Docker image we are building it in. - image: "rockylinux:8" os: "centos:8" rpm_systemd_service_unit_file: "pkg/common/krill-ubuntu-focal.krill.service" + - image: "rockylinux:9" + rpm_systemd_service_unit_file: "pkg/common/krill-ubuntu-focal.krill.service" - # package for the Raspberry Pi 4b as an ARMv7 cross compiled variant of the Debian Bullseye upon which - # Raspbian 11 is based. + # package for the Raspberry Pi 4b as an ARMv7 cross compiled variant of + # the Debian Bullseye upon which Raspbian 11 is based. - pkg: "krill" image: "debian:bullseye" target: "armv7-unknown-linux-gnueabihf" @@ -47,8 +55,8 @@ include: image: "debian:bullseye" target: "armv7-unknown-linux-gnueabihf" - # package for the Raspberry Pi 1b as an ARMv6 cross compiled variant of the Debian Buster upon which - # Raspbian 10 is based. + # package for the Raspberry Pi 1b as an ARMv6 cross compiled variant of + # the Debian Buster upon which Raspbian 10 is based. - pkg: "krill" image: "debian:buster" target: "arm-unknown-linux-gnueabihf" @@ -56,11 +64,15 @@ include: image: "debian:buster" target: "arm-unknown-linux-gnueabihf" - # package for the ROCK64 as an AARCH64 cross compiled variant of Debian Buster upon which Armbian 21 is - # based. + # package for the ROCK64 as an AARCH64 cross compiled variant of Debian + # Buster upon which Armbian 21 is based. - pkg: "krill" image: "debian:buster" target: "aarch64-unknown-linux-gnu" - pkg: "krillup" image: "debian:buster" target: "aarch64-unknown-linux-gnu" +test-exclude: + - image: "rockylinux:9" + mode: "upgrade-from-published" + diff --git a/pkg/rules/packages-to-test.yml b/pkg/rules/packages-to-test.yml deleted file mode 100644 index bf0d8938e..000000000 --- a/pkg/rules/packages-to-test.yml +++ /dev/null @@ -1,81 +0,0 @@ -# See: https://github.com/NLnetLabs/ploutos/blob/main/docs/os_packaging.md#package-build-rules ---- -pkg: - - "krill" - - "krillup" - - "krillta" -image: - - "ubuntu:focal" # ubuntu/20.04 - - "ubuntu:jammy" # ubuntu/22.04 - - "ubuntu:noble" # ubuntu/24.04 - - "debian:buster" # debian/10 - - "debian:bullseye" # debian/11 - - "debian:bookworm" # debian/12 - - "centos:7" - - "rockylinux:8" # compatible with EOL centos:8 -target: - - "x86_64" -mode: - - "fresh-install" - - "upgrade-from-published" -include: - # cargo-generate-rpm doesn't support specifying feature variations in Cargo.toml so we have to do it via - # custom build arguments instead. - # For CentOS 7 we want to statically link with OpenSSL, but `cargo generate-rpm` doesn't build the code for - # us unlike `cargo deb`, so we have to control the feature set used for building ourselves rather than in - # `Cargo.toml`. - - image: "centos:7" - extra_build_args: "--features static-openssl" - rpm_systemd_service_unit_file: pkg/common/krill-ubuntu-xenial.krill.service - - # CentOS 8 became EOL and is in theory still usable as a build container as there is still a Docker image - # available, and package installation can be done by switching the yum config in the container to use packages - # from the CentOS 8 vault rather than the now offline actual CentOS 8 repository. However, due to experiencing - # lots of timed out connections to the vault we will build the CentOS 8 compatible package in a Rocky Linux - # container instead, as Rocky Linux is 100% compatible with CentOS 8. The server at packages.nlnetlabs.nl - # however has a repo for CentOS 8, not Rocky Linux, and determines the repo to publish in based on the name of - # the archive that we produce below which is in turn based by default on the container image used to build. We - # therefore in this case need to specify that the O/S we are building for has a different name than the Docker - # image we are building it in. - - image: "rockylinux:8" - os: "centos:8" - rpm_systemd_service_unit_file: "pkg/common/krill-ubuntu-focal.krill.service" - - # package for the Raspberry Pi 4b as an ARMv7 cross compiled variant of the Debian Bullseye upon which - # Raspbian 11 is based. - - pkg: "krill" - image: "debian:bullseye" - target: "armv7-unknown-linux-gnueabihf" - - pkg: "krillup" - image: "debian:bullseye" - target: "armv7-unknown-linux-gnueabihf" - - # package for the Raspberry Pi 1b as an ARMv6 cross compiled variant of the Debian Buster upon which - # Raspbian 10 is based. - - pkg: "krill" - image: "debian:buster" - target: "arm-unknown-linux-gnueabihf" - - pkg: "krillup" - image: "debian:buster" - target: "arm-unknown-linux-gnueabihf" - - # package for the ROCK64 as an AARCH64 cross compiled variant of Debian Buster upon which Armbian 21 is - # based. - - pkg: "krill" - image: "debian:buster" - target: "aarch64-unknown-linux-gnu" - - pkg: "krillup" - image: "debian:buster" - target: "aarch64-unknown-linux-gnu" - -# Exclude upgrade testing on Ubuntu Noble as no prior released versions exist to upgrade from. -exclude: - - pkg: "krill" - image: "ubuntu:noble" - mode: "upgrade-from-published" - - pkg: "krillta" - image: "ubuntu:noble" - mode: "upgrade-from-published" - - pkg: "krillup" - image: "ubuntu:noble" - mode: "upgrade-from-published"