From 69bd24efbf14b5577824b2fc1bb8d0cfaf7128e4 Mon Sep 17 00:00:00 2001 From: treydock Date: Mon, 15 Jul 2024 13:57:09 -0400 Subject: [PATCH] Support building for Ubuntu 24.04 (#277) Fixes #276 --- .github/workflows/e2e.yaml | 7 +++++++ .github/workflows/release.yaml | 3 +++ .gitlab-ci.yml | 10 ++++++---- Gemfile.lock | 2 +- lib/ood_packaging/build_box.rb | 2 ++ lib/ood_packaging/version.rb | 6 +++--- packages/ondemand-release-latest/deb/debian/rules | 4 +++- packages/ondemand-release/deb/debian/rules | 4 +++- release-manifest.yaml | 7 ++++--- release.py | 1 + repo-update.sh | 3 +++ spec/ood_packaging/ood_packaging_spec.rb | 2 +- sync-release.py | 2 ++ 13 files changed, 39 insertions(+), 14 deletions(-) diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 06b1506..45e1ec5 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -18,6 +18,7 @@ jobs: - el9 - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 - debian-12 - amzn2023 arch: @@ -31,6 +32,8 @@ jobs: arch: ppc64le - dist: ubuntu-22.04 arch: ppc64le + - dist: ubuntu-24.04 + arch: ppc64le runs-on: ${{ matrix.os }} name: Buildbox tests steps: @@ -175,6 +178,7 @@ jobs: dist: - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 - debian-12 arch: - x86_64 @@ -247,6 +251,7 @@ jobs: - el9 - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 - debian-12 - amzn2023 arch: @@ -273,6 +278,8 @@ jobs: arch: ppc64le - dist: ubuntu-22.04 arch: ppc64le + - dist: ubuntu-24.04 + arch: ppc64le runs-on: ${{ matrix.os }} name: Package ${{ matrix.package }} dist=${{ matrix.dist }} arch=${{ matrix.arch }} steps: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ff071db..827fd5d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,6 +16,7 @@ jobs: - amzn2023 - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 - debian-12 arch: - x86_64 @@ -28,6 +29,8 @@ jobs: arch: ppc64le - dist: ubuntu-22.04 arch: ppc64le + - dist: ubuntu-24.04 + arch: ppc64le name: Release buildbox runs-on: ubuntu-latest steps: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 39daf32..626a6a4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,7 +34,7 @@ build-image: OOD_PACKAGING_GPG_PRIVATE_KEY: /systems/osc_certs/gpg/ondemand/ondemand.sec - OOD_PACKAGING_DIST: [el9, debian-12] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04] + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] OOD_PACKAGING_ARCH: [x86_64, aarch64] - OOD_PACKAGING_DIST: [amzn2023] OOD_PACKAGING_ARCH: [x86_64, aarch64] @@ -51,7 +51,8 @@ build-ondemand-release: parallel: matrix: - OOD_PACKAGING_DIST: [el8, el9, amzn2023] - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, debian-12] + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] + - OOD_PACKAGING_DIST: [debian-12] artifacts: paths: - tmp/output @@ -69,7 +70,8 @@ build-ondemand-release-latest: parallel: matrix: - OOD_PACKAGING_DIST: [el8, el9, amzn2023] - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, debian-12] + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] + - OOD_PACKAGING_DIST: [debian-12] artifacts: paths: - tmp/output @@ -132,7 +134,7 @@ build-passenger: OOD_PACKAGING_GPG_PRIVATE_KEY: /systems/osc_certs/gpg/ondemand/ondemand.sec - OOD_PACKAGING_DIST: [el9, debian-12] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04] + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04] OOD_PACKAGING_ARCH: [x86_64, aarch64] - OOD_PACKAGING_DIST: [amzn2023] # Amazon aarch64 takes hours so build by hand for now diff --git a/Gemfile.lock b/Gemfile.lock index ea55890..b3d1d7f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - ood_packaging (0.14.1) + ood_packaging (0.15.0) rake (~> 13.0.1) GEM diff --git a/lib/ood_packaging/build_box.rb b/lib/ood_packaging/build_box.rb index da1089b..c924eef 100644 --- a/lib/ood_packaging/build_box.rb +++ b/lib/ood_packaging/build_box.rb @@ -14,6 +14,7 @@ class OodPackaging::BuildBox 'el9' => 'almalinux:9', 'ubuntu-20.04' => 'ubuntu:20.04', 'ubuntu-22.04' => 'ubuntu:22.04', + 'ubuntu-24.04' => 'ubuntu:24.04', 'debian-12' => 'debian:12', 'amzn2023' => 'amazonlinux:2023' }.freeze @@ -21,6 +22,7 @@ class OodPackaging::BuildBox CODENAMES = { 'ubuntu-20.04' => 'focal', 'ubuntu-22.04' => 'jammy', + 'ubuntu-24.04' => 'noble', 'debian-12' => 'bookworm' }.freeze diff --git a/lib/ood_packaging/version.rb b/lib/ood_packaging/version.rb index 91616bc..6d8bdfc 100644 --- a/lib/ood_packaging/version.rb +++ b/lib/ood_packaging/version.rb @@ -2,14 +2,14 @@ # Version code for OodPackaging module OodPackaging - VERSION = '0.14.1' + VERSION = '0.15.0' PACKAGE_VERSION = { 'ondemand-release' => { - '(ubuntu|debian)' => '3.1.1', + '(ubuntu|debian)' => '3.1.2', 'default' => '3.1' }, 'ondemand-release-latest' => { - '(ubuntu|debian)' => '3', + '(ubuntu|debian)' => '4', 'default' => '1-8' }, 'ondemand-runtime' => '3.1.5', diff --git a/packages/ondemand-release-latest/deb/debian/rules b/packages/ondemand-release-latest/deb/debian/rules index 42471a5..74e2021 100755 --- a/packages/ondemand-release-latest/deb/debian/rules +++ b/packages/ondemand-release-latest/deb/debian/rules @@ -20,8 +20,10 @@ override_dh_auto_install: mkdir -p $(WEB_DESTDIR)/etc/apt/trusted.gpg.d echo "deb https://apt.osc.edu/ondemand/latest/web/apt $(CODENAME) main" > $(WEB_DESTDIR)/etc/apt/sources.list.d/ondemand-web.list install -m 644 -D $(CURDIR)/ondemand.gpg $(WEB_DESTDIR)/etc/apt/trusted.gpg.d/ondemand-web.gpg -# Debian 12 (bookworm) has NodeJS 18 in OS repos +# Debian 12 (bookworm) and Ubuntu 24.04 (noble) +# have NodeJS 18 in OS repos ifeq ($(CODENAME),bookworm) +else ifeq ($(CODENAME),noble) else echo "deb https://deb.nodesource.com/$(NODEREPO) nodistro main" > $(WEB_DESTDIR)/etc/apt/sources.list.d/nodesource.list curl -s https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor > $(WEB_DESTDIR)/etc/apt/trusted.gpg.d/nodesource.gpg diff --git a/packages/ondemand-release/deb/debian/rules b/packages/ondemand-release/deb/debian/rules index e299d85..82d5a68 100755 --- a/packages/ondemand-release/deb/debian/rules +++ b/packages/ondemand-release/deb/debian/rules @@ -23,8 +23,10 @@ override_dh_auto_install: mkdir -p $(WEB_DESTDIR)/etc/apt/trusted.gpg.d echo "deb https://apt.osc.edu/ondemand/$(REPO)/web/apt $(CODENAME) main" > $(WEB_DESTDIR)/etc/apt/sources.list.d/ondemand-web.list install -m 644 -D $(CURDIR)/ondemand.gpg $(WEB_DESTDIR)/etc/apt/trusted.gpg.d/ondemand-web.gpg -# Debian 12 (bookworm) has NodeJS 18 in OS repos +# Debian 12 (bookworm) and Ubuntu 24.04 (noble) +# have NodeJS 18 in OS repos ifeq ($(CODENAME),bookworm) +else ifeq ($(CODENAME),noble) else echo "deb https://deb.nodesource.com/$(NODEREPO) nodistro main" > $(WEB_DESTDIR)/etc/apt/sources.list.d/nodesource.list curl -s https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor > $(WEB_DESTDIR)/etc/apt/trusted.gpg.d/nodesource.gpg diff --git a/release-manifest.yaml b/release-manifest.yaml index ee0cdb5..ea74663 100644 --- a/release-manifest.yaml +++ b/release-manifest.yaml @@ -10,9 +10,10 @@ ondemand-release: versions: - '{major}-1' # deb package - - '{major}.1-focal' - - '{major}.1-jammy' - - '{major}.1-bookworm' + - '{major}.2-focal' + - '{major}.2-jammy' + - '{major}.2-noble' + - '{major}.2-bookworm' # web cjose: diff --git a/release.py b/release.py index 9219119..1b110ce 100755 --- a/release.py +++ b/release.py @@ -21,6 +21,7 @@ 'ubuntu-18.04': 'bionic', 'ubuntu-20.04': 'focal', 'ubuntu-22.04': 'jammy', + 'ubuntu-24.04': 'noble', 'debian-12': 'bookworm', } PROJ_ROOT = os.path.dirname(os.path.realpath(__file__)) diff --git a/repo-update.sh b/repo-update.sh index cbe0418..ed5841b 100755 --- a/repo-update.sh +++ b/repo-update.sh @@ -102,6 +102,9 @@ LOCK_FILE="/var/lib/oodpkg/repo-update-${LOCK_NAME}.lock" debian-12|bookworm) DIST="bookworm" ;; + ubuntu-24.04|noble) + DIST="noble" + ;; ubuntu-22.04|jammy) DIST="jammy" ;; diff --git a/spec/ood_packaging/ood_packaging_spec.rb b/spec/ood_packaging/ood_packaging_spec.rb index 2fb8300..caeb055 100644 --- a/spec/ood_packaging/ood_packaging_spec.rb +++ b/spec/ood_packaging/ood_packaging_spec.rb @@ -8,6 +8,6 @@ end it 'gets package version for dist ubuntu-20.04' do - expect(described_class.package_version('ondemand-release-latest', 'ubuntu-20.04')).to eq('3') + expect(described_class.package_version('ondemand-release-latest', 'ubuntu-20.04')).to eq('4') end end diff --git a/sync-release.py b/sync-release.py index 370b7f3..fe9838e 100755 --- a/sync-release.py +++ b/sync-release.py @@ -20,6 +20,7 @@ 'amzn2023', 'ubuntu-20.04', 'ubuntu-22.04', + 'ubuntu-24.04', 'debian-12' ] EL_RELEASES = [ @@ -32,6 +33,7 @@ DEB_CODENAMES = [ 'focal', 'jammy', + 'noble', 'bookworm' ] SKIP = [