diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fbfd1bfdc6..faa37b563e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: - os: ubuntu-latest ruby: "3.0.2" bundler: "2.3.5" - # Test versions from RHEL8 & RHEL9 + # Test versions from Debian 12 - os: ubuntu-latest ruby: "3.1.2" bundler: "2.3.7" @@ -28,6 +28,10 @@ jobs: - os: ubuntu-latest ruby: "3.2.2" bundler: "2.4.10" + # Test versions from RHEL8 & RHEL9 + - os: ubuntu-latest + ruby: "3.3.5" + bundler: "2.5.16" runs-on: ${{ matrix.os }} name: Unit tests @@ -129,7 +133,7 @@ jobs: - x86_64 - aarch64 - ppc64le - version: ["3.1"] + version: ["4.0"] exclude: # Amazon 2023 on aarch64 is very slow and will time out - dist: amzn2023 @@ -137,12 +141,15 @@ jobs: # Amazon 2023 doesn't have ppc64le containers - dist: amzn2023 arch: ppc64le - # Ubuntu doesn't have way to get NodeJS 14+ on ppc64le + # Ubuntu and Debian doesn't have way to get NodeJS 20+ on ppc64le - dist: ubuntu-20.04 arch: ppc64le - # Ubuntu doesn't have way to get NodeJS 14+ on ppc64le - dist: ubuntu-22.04 arch: ppc64le + - dist: ubuntu-24.04 + arch: ppc64le + - dist: debian-12 + arch: ppc64le runs-on: ${{ matrix.os }} name: E2E test ${{ matrix.dist }}-${{ matrix.arch }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 482e578eed..d191cd82a6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,6 +9,7 @@ stages: - deploy variables: + OOD_BUILD_REPO: '4.0' GIT_STRATEGY: clone GIT_DEPTH: 0 OOD_PACKAGING_DEBUG: 'true' @@ -26,14 +27,11 @@ build-nightly: - OOD_PACKAGING_DIST: [el8] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] OOD_PACKAGING_GPG_PRIVATE_KEY: /systems/osc_certs/gpg/ondemand/ondemand.sec - - OOD_PACKAGING_DIST: [el9, debian-12] + - OOD_PACKAGING_DIST: [el9] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] - # Ubuntu doesn't have way to get NodeJS 14+ on ppc64le - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04] + # Ubuntu and Debian don't have way to get NodeJS 20+ on ppc64le + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, debian-12] OOD_PACKAGING_ARCH: [x86_64, aarch64] - # Ubuntu 24.04 on aarch64 is slow and will time out - - OOD_PACKAGING_DIST: [ubuntu-24.04] - OOD_PACKAGING_ARCH: [x86_64, ppc64le] # Amazon 2023 on aarch64 is slow and will time out - OOD_PACKAGING_DIST: [amzn2023] OOD_PACKAGING_ARCH: [x86_64] @@ -50,6 +48,8 @@ build: # Re-enable once Gitlab instance using plugin to integrate with Github # - if: '$CI_PIPELINE_SOURCE == "external_pull_request_event"' - if: '$CI_COMMIT_BRANCH !~ /^(master|release_[0-9]\.[0-9])$/ && $CI_COMMIT_TAG == null' + variables: + VERSION: '$OOD_BUILD_REPO.0' script: - bundle exec rake package:build[$OOD_PACKAGING_DIST,$OOD_PACKAGING_ARCH] parallel: @@ -57,14 +57,11 @@ build: - OOD_PACKAGING_DIST: [el8] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] OOD_PACKAGING_GPG_PRIVATE_KEY: /systems/osc_certs/gpg/ondemand/ondemand.sec - - OOD_PACKAGING_DIST: [el9, debian-12] + - OOD_PACKAGING_DIST: [el9] OOD_PACKAGING_ARCH: [x86_64, aarch64, ppc64le] - # Ubuntu doesn't have way to get NodeJS 14+ on ppc64le - - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04] + # Ubuntu and Debian don't have way to get NodeJS 20+ on ppc64le + - OOD_PACKAGING_DIST: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, debian-12] OOD_PACKAGING_ARCH: [x86_64, aarch64] - # Ubuntu 24.04 on aarch64 is slow and will time out - - OOD_PACKAGING_DIST: [ubuntu-24.04] - OOD_PACKAGING_ARCH: [x86_64, ppc64le] # Amazon 2023 on aarch64 is slow and will time out - OOD_PACKAGING_DIST: [amzn2023] OOD_PACKAGING_ARCH: [x86_64] diff --git a/Gemfile b/Gemfile index b8a0dbebd7..a919bf3827 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,7 @@ gem 'rake' gem 'dotenv', '~> 2.1' group :package do - gem 'ood_packaging', '~> 0.15.2' + gem 'ood_packaging', '~> 0.16.1' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 2933c56c2e..e667245416 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -96,7 +96,7 @@ GEM oga (3.3) ast ruby-ll (~> 2.1) - ood_packaging (0.15.2) + ood_packaging (0.16.1) rake (~> 13.0.1) open_uri_redirections (0.2.1) parallel (1.21.0) @@ -177,7 +177,7 @@ DEPENDENCIES beaker-docker (~> 1.4.0) beaker-rspec dotenv (~> 2.1) - ood_packaging (~> 0.15.2) + ood_packaging (~> 0.16.1) rake rspec rubocop diff --git a/packaging/deb/control b/packaging/deb/control index e3c386de8c..1285b1e76c 100644 --- a/packaging/deb/control +++ b/packaging/deb/control @@ -5,7 +5,7 @@ Maintainer: Ohio Supercomputer Center Build-Depends: debhelper (>=11~), curl, build-essential, tzdata, libxml2-dev, libxslt-dev, pkg-config, zlib1g-dev, liblzma-dev, ruby, ruby-dev, - nodejs (>= 18.0), nodejs (<< 19.0), + nodejs (>= 20.0), nodejs (<< 21.0), sqlite3, libsqlite3-dev, python3@EXTRA_DEPENDS@ Standards-Version: 4.1.4 Homepage: https://openondemand.org @@ -15,8 +15,8 @@ Architecture: any Multi-Arch: foreign Depends: ${misc:Depends}, ${shlibs:Depends}, ruby, apache2, sudo, lsof, lua-posix, tzdata, file, - nodejs (>= 18.0), nodejs (<< 19.0), - ondemand-nginx (= 1.24.0.p6.0.20.ood3.1), ondemand-passenger (= 6.0.20.ood3.1) + nodejs (>= 20.0), nodejs (<< 21.0), + ondemand-nginx (= 1.26.1.p6.0.23.ood4.0), ondemand-passenger (= 6.0.23.ood4.0) Recommends: rclone Description: Open OnDemand is an open source release of the Ohio SuperComputer Center's OnDemand platform to provide HPC access via a web browser, supporting web based file diff --git a/packaging/rpm/ondemand.spec b/packaging/rpm/ondemand.spec index 1cc44d8236..1f5e48dc5e 100644 --- a/packaging/rpm/ondemand.spec +++ b/packaging/rpm/ondemand.spec @@ -5,7 +5,7 @@ %define git_tag_minus_v %(echo %{git_tag} | sed -r 's/^v//') %define major_version %(echo %{git_tag_minus_v} | cut -d. -f1) %define minor_version %(echo %{git_tag_minus_v} | cut -d. -f2) -%define runtime_version %{major_version}.%{minor_version}.6 +%define runtime_version %{major_version}.%{minor_version}.1 %define runtime_release 1 %define runtime_version_full %{runtime_version}-%{runtime_release}%{?dist} %define selinux_policy_ver %(rpm --qf "%%{version}" -q selinux-policy) @@ -74,8 +74,8 @@ Requires: python3 Requires: rclone %endif Requires: ondemand-apache = %{runtime_version_full} -Requires: ondemand-nginx = 1.24.0-1.p6.0.20.ood%{runtime_version}%{?dist} -Requires: ondemand-passenger = 6.0.20-1.ood%{runtime_version}%{?dist} +Requires: ondemand-nginx = 1.26.1-1.p6.0.23.ood%{runtime_version}%{?dist} +Requires: ondemand-passenger = 6.0.23-1.ood%{runtime_version}%{?dist} Requires: ondemand-ruby = %{runtime_version_full} Requires: ondemand-nodejs = %{runtime_version_full} Requires: ondemand-runtime = %{runtime_version_full} diff --git a/spec/e2e/e2e_helper.rb b/spec/e2e/e2e_helper.rb index c2c7306de6..670e144ee3 100644 --- a/spec/e2e/e2e_helper.rb +++ b/spec/e2e/e2e_helper.rb @@ -121,8 +121,8 @@ def bootstrap_repos case host_inventory['platform'] when 'redhat' repos << 'epel-release' - on hosts, 'dnf -y module enable ruby:3.1' - on hosts, 'dnf -y module enable nodejs:18' + on hosts, 'dnf -y module enable ruby:3.3' + on hosts, 'dnf -y module enable nodejs:20' when 'ubuntu', 'debian' on hosts, 'apt-get update' end @@ -163,7 +163,7 @@ def ondemand_repo end def build_repo_version - ENV['OOD_BUILD_REPO'] || '3.1' + ENV['OOD_BUILD_REPO'] || '4.0' end def install_ondemand @@ -176,13 +176,17 @@ def install_ondemand install_packages(['ondemand', 'ondemand-dex', 'ondemand-selinux']) elsif apt? install_packages(['wget']) - on hosts, "wget -O /tmp/ondemand-release.deb https://yum.osc.edu/ondemand/latest/ondemand-release-web_#{build_repo_version}.2-#{codename}_all.deb" + on hosts, "wget -O /tmp/ondemand-release.deb https://yum.osc.edu/ondemand/latest/ondemand-release-web_#{build_repo_version}.0-#{codename}_all.deb" install_packages(['/tmp/ondemand-release.deb']) on hosts, "sed -i 's|ondemand/#{build_repo_version}/web|ondemand/build/#{build_repo_version}/web|g' /etc/apt/sources.list.d/ondemand-web.list" on hosts, 'apt-get update' install_packages(['ondemand', 'ondemand-dex']) end + if host_inventory['platform'] == 'amazon' + on hosts, 'alternatives --install /usr/bin/node node /usr/bin/node-20 1' + on hosts, 'alternatives --install /usr/bin/npm npm /usr/bin/npm-20 1' + end # Avoid 'update_ood_portal --rpm' so that --insecure can be used on hosts, "sed -i 's|--rpm|--rpm --insecure|g' /etc/systemd/system/#{apache_service}.service.d/ood-portal.conf" on hosts, 'systemctl daemon-reload'