From 05181616aee495b3aa30d6a1a2fa6d8ffcf3ac81 Mon Sep 17 00:00:00 2001 From: Arimil Date: Wed, 27 Sep 2023 23:50:53 -0400 Subject: [PATCH] Update to node 20 fix some issues with dockerfiles combine installation statements into a single layer --- .ci/azure-pipelines-build.yml | 2 +- .github/workflows/lint.yml | 8 ++++---- .github/workflows/tsc.yml | 2 +- deployment/Dockerfile.centos | 4 ++-- deployment/Dockerfile.debian | 8 +++++--- deployment/Dockerfile.fedora | 3 ++- deployment/Dockerfile.portable | 7 +++++-- fedora/Makefile | 2 +- fedora/jellyfin-web.spec | 8 ++++---- package-lock.json | 4 ++-- package.json | 4 ++-- 11 files changed, 29 insertions(+), 23 deletions(-) diff --git a/.ci/azure-pipelines-build.yml b/.ci/azure-pipelines-build.yml index 9c3a51c9fc..d873172396 100644 --- a/.ci/azure-pipelines-build.yml +++ b/.ci/azure-pipelines-build.yml @@ -16,7 +16,7 @@ jobs: - task: NodeTool@0 displayName: 'Install Node' inputs: - versionSpec: '16.x' + versionSpec: '20.x' - task: Cache@2 displayName: 'Cache node_modules' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 085e9d7893..b754665bca 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: - name: Setup node environment uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 with: - node-version: 16 + node-version: 20 check-latest: true cache: npm @@ -42,7 +42,7 @@ jobs: - name: Setup node environment uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 with: - node-version: 16 + node-version: 20 check-latest: true cache: npm @@ -63,7 +63,7 @@ jobs: - name: Setup node environment uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 with: - node-version: 16 + node-version: 20 check-latest: true cache: npm @@ -87,7 +87,7 @@ jobs: - name: Setup node environment uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 with: - node-version: 16 + node-version: 20 check-latest: true cache: npm diff --git a/.github/workflows/tsc.yml b/.github/workflows/tsc.yml index 2d30664b6f..54b3208c81 100644 --- a/.github/workflows/tsc.yml +++ b/.github/workflows/tsc.yml @@ -18,7 +18,7 @@ jobs: - name: Setup node environment uses: actions/setup-node@e33196f7422957bea03ed53f6fbb155025ffc7b8 # v3.7.0 with: - node-version: 16 + node-version: 20 check-latest: true cache: npm diff --git a/deployment/Dockerfile.centos b/deployment/Dockerfile.centos index 566180ad22..32ade8de43 100644 --- a/deployment/Dockerfile.centos +++ b/deployment/Dockerfile.centos @@ -13,8 +13,8 @@ ENV IS_DOCKER=YES RUN yum update -y \ && yum install -y epel-release \ && yum install -y rpmdevtools git autoconf automake glibc-devel gcc-c++ make \ - && curl -fsSL https://rpm.nodesource.com/setup_16.x | bash - \ - && yum install -y nodejs + && yum install https://rpm.nodesource.com/pub_20.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y \ + && yum install nodejs -y --setopt=nodesource-nodejs.module_hotfixes=1 # Link to build script RUN ln -sf ${SOURCE_DIR}/deployment/build.centos /build.sh diff --git a/deployment/Dockerfile.debian b/deployment/Dockerfile.debian index 1d39d5b591..d42b812bf3 100644 --- a/deployment/Dockerfile.debian +++ b/deployment/Dockerfile.debian @@ -12,11 +12,13 @@ ENV IS_DOCKER=YES # Prepare Debian build environment RUN apt-get update \ - && apt-get install -y debhelper mmv git curl \ - && curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \ + && apt-get install -y debhelper mmv git curl gnupg ca-certificates \ + && mkdir -p /etc/apt/keyrings \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ && apt-get install -y nodejs - # Link to build script RUN ln -sf ${SOURCE_DIR}/deployment/build.debian /build.sh diff --git a/deployment/Dockerfile.fedora b/deployment/Dockerfile.fedora index 5e44024f2e..8c77fae0cf 100644 --- a/deployment/Dockerfile.fedora +++ b/deployment/Dockerfile.fedora @@ -11,7 +11,8 @@ ENV IS_DOCKER=YES # Prepare Fedora environment RUN dnf update -y \ - && dnf install -y @buildsys-build rpmdevtools git dnf-plugins-core nodejs autoconf automake glibc-devel make + && yum install https://rpm.nodesource.com/pub_20.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm -y \ + && dnf install -y @buildsys-build rpmdevtools git dnf-plugins-core nodejs autoconf automake glibc-devel make --setopt=nodesource-nodejs.module_hotfixes=1 # Link to build script RUN ln -sf ${SOURCE_DIR}/deployment/build.fedora /build.sh diff --git a/deployment/Dockerfile.portable b/deployment/Dockerfile.portable index 7044cca623..e57052178b 100644 --- a/deployment/Dockerfile.portable +++ b/deployment/Dockerfile.portable @@ -11,8 +11,11 @@ ENV IS_DOCKER=YES # Prepare Debian build environment RUN apt-get update \ - && apt-get install -y mmv curl git \ - && curl -fsSL https://deb.nodesource.com/setup_16.x | bash - \ + && apt-get install -y mmv curl git gnupg ca-certificates \ + && mkdir -p /etc/apt/keyrings \ + && curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \ + && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \ + && apt-get update \ && apt-get install -y nodejs # Link to build script diff --git a/fedora/Makefile b/fedora/Makefile index c094073bc8..adc5ecf672 100644 --- a/fedora/Makefile +++ b/fedora/Makefile @@ -7,7 +7,7 @@ RELEASE := $(shell set -x; sed -ne '/^Release:/s/.* *\(.*\)%{.*}.*/\1/p' $(DIR) SRPM := jellyfin-web-$(subst -,~,$(VERSION))-$(RELEASE)$(shell rpm --eval %dist).src.rpm TARBALL :=$(NAME)-$(subst -,~,$(VERSION)).tar.gz -epel-7-x86_64_repos := https://rpm.nodesource.com/pub_16.x/el/\$$releasever/\$$basearch/ +epel-7-x86_64_repos := https://rpm.nodesource.com/pub_20.x/nodistro/\$$basearch/ fed_ver := $(shell rpm -E %fedora) # fallback when not running on Fedora diff --git a/fedora/jellyfin-web.spec b/fedora/jellyfin-web.spec index 595ef33f2c..fa1c1722e9 100644 --- a/fedora/jellyfin-web.spec +++ b/fedora/jellyfin-web.spec @@ -14,10 +14,10 @@ BuildArch: noarch BuildRequires: nodejs %else BuildRequires: git -# Nodejs 16 is required and npm >= 8 should bring in NodeJS 16 -# This requires the build environment to use the nodejs:16 module stream: -# dnf module {install|switch-to}:web nodejs:16 -BuildRequires: npm >= 8 +# Nodejs 20 is required and npm >= 10 should bring in NodeJS 20 +# This requires the build environment to use the nodejs:20 module stream: +# dnf module {install|switch-to}:web nodejs:20 +BuildRequires: npm >= 10 %endif %description diff --git a/package-lock.json b/package-lock.json index 2ecbd9d155..5297c56d9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -125,8 +125,8 @@ "worker-loader": "3.0.8" }, "engines": { - "node": ">=16.13.1", - "npm": ">=8.1.2", + "node": ">=20.7.0", + "npm": ">=10.1.0", "yarn": "YARN NO LONGER USED - use npm instead." } }, diff --git a/package.json b/package.json index 988c2a0215..6eb78d111c 100644 --- a/package.json +++ b/package.json @@ -150,8 +150,8 @@ "stylelint:scss": "stylelint --config=\".stylelintrc.scss.json\" \"src/**/*.scss\"" }, "engines": { - "node": ">=16.13.1", - "npm": ">=8.1.2", + "node": ">=20.7.0", + "npm": ">=10.1.0", "yarn": "YARN NO LONGER USED - use npm instead." } }