diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bfcbdba834..9ef7e269cb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,6 +21,7 @@ jobs: - debian-bookworm - ubuntu-focal - ubuntu-jammy + - ubuntu-noble steps: - name: Checkout diff --git a/Jenkinsfile b/Jenkinsfile index 3f21561b5d..94f75c5d65 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,6 +18,7 @@ def pkgs = [ [target: "ubuntu-focal", image: "ubuntu:focal", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 20.04 LTS (End of support: April, 2025. EOL: April, 2030) [target: "ubuntu-jammy", image: "ubuntu:jammy", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 22.04 LTS (End of support: June, 2027. EOL: April, 2032) [target: "ubuntu-mantic", image: "ubuntu:mantic", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 23.10 (EOL: July, 2024) + [target: "ubuntu-noble", image: "ubuntu:noble", arches: ["amd64", "aarch64", "armhf"]], // Ubuntu 24.04 LTS (End of support: June, 2029. EOL: April, 2034) ] def genBuildStep(LinkedHashMap pkg, String arch) { diff --git a/deb/Makefile b/deb/Makefile index bb15996541..2ebd5ba77c 100644 --- a/deb/Makefile +++ b/deb/Makefile @@ -44,7 +44,7 @@ RUN?=docker run --rm \ debbuild-$@/$(ARCH) DEBIAN_VERSIONS ?= debian-buster debian-bullseye debian-bookworm -UBUNTU_VERSIONS ?= ubuntu-focal ubuntu-jammy ubuntu-mantic +UBUNTU_VERSIONS ?= ubuntu-focal ubuntu-jammy ubuntu-mantic ubuntu-noble RASPBIAN_VERSIONS ?= raspbian-buster raspbian-bullseye raspbian-bookworm DISTROS := $(DEBIAN_VERSIONS) $(UBUNTU_VERSIONS) $(RASPBIAN_VERSIONS) diff --git a/deb/ubuntu-noble/Dockerfile b/deb/ubuntu-noble/Dockerfile new file mode 100644 index 0000000000..63f45bff81 --- /dev/null +++ b/deb/ubuntu-noble/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1 + +ARG GO_IMAGE +ARG DISTRO=ubuntu +ARG SUITE=noble +ARG VERSION_ID=24.04 +ARG BUILD_IMAGE=${DISTRO}:${SUITE} + +FROM ${GO_IMAGE} AS golang + +FROM ${BUILD_IMAGE} + +# Remove diverted man binary to prevent man-pages being replaced with "minimized" message. See docker/for-linux#639 +RUN if [ "$(dpkg-divert --truename /usr/bin/man)" = "/usr/bin/man.REAL" ]; then \ + rm -f /usr/bin/man; \ + dpkg-divert --quiet --remove --rename /usr/bin/man; \ + fi + +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y curl devscripts equivs git + +ENV GOPROXY=https://proxy.golang.org|direct +ENV GO111MODULE=off +ENV GOPATH /go +ENV GOTOOLCHAIN=local +ENV PATH $PATH:/usr/local/go/bin:$GOPATH/bin + +ARG COMMON_FILES +COPY --link ${COMMON_FILES} /root/build-deb/debian +RUN apt-get update \ + && mk-build-deps -t "apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends -y" -i /root/build-deb/debian/control + +COPY --link sources/ /sources +ARG DISTRO +ARG SUITE +ARG VERSION_ID +ENV DISTRO=${DISTRO} +ENV SUITE=${SUITE} +ENV VERSION_ID=${VERSION_ID} + +COPY --link --from=golang /usr/local/go /usr/local/go + +WORKDIR /root/build-deb +COPY build-deb /root/build-deb/build-deb + +ENTRYPOINT ["/root/build-deb/build-deb"]