From eeac65bda358bd675408d3867a2191250159926e Mon Sep 17 00:00:00 2001 From: HananINouman Date: Mon, 6 Jul 2026 12:15:52 +0300 Subject: [PATCH] Migrate CI and project tooling to Node 24. GitHub Actions is deprecating Node 20; bump action majors and align engines, types, and .nvmrc so local dev matches CI. Co-authored-by: Cursor --- .github/workflows/ci.yml | 10 +++++----- .nvmrc | 1 + README.md | 2 ++ package.json | 4 ++-- yarn.lock | 18 +++++++++--------- 5 files changed, 19 insertions(+), 16 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67a727d..a010cd4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,10 +18,10 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: - node-version: "20" + node-version-file: ".nvmrc" cache: yarn - run: yarn install --frozen-lockfile - run: yarn lint @@ -33,7 +33,7 @@ jobs: NEXT_PUBLIC_BASE_PATH: /validator-beat - name: Upload Pages artifact if: github.event_name == 'push' && github.ref == 'refs/heads/main' - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: path: out @@ -47,4 +47,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..a45fd52 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/README.md b/README.md index 21bbcf9..6ec259c 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Neutral, public-good **self-assessment** for Ethereum validator operators — si ## Development +Requires **Node.js 24+** (see `.nvmrc`). + ```bash yarn install yarn dev diff --git a/package.json b/package.json index 88bb8d3..dc12003 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "Apache-2.0", "engines": { - "node": ">=20.0.0" + "node": ">=24.0.0" }, "scripts": { "dev": "next dev", @@ -34,7 +34,7 @@ "devDependencies": { "@testing-library/jest-dom": "6.9.1", "@types/jest": "29.5.14", - "@types/node": "20.19.39", + "@types/node": "24.13.2", "@types/react": "19.2.7", "@types/react-dom": "19.2.3", "@typescript-eslint/eslint-plugin": "8.59.1", diff --git a/yarn.lock b/yarn.lock index cbe8fd0..e76c591 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1661,12 +1661,12 @@ dependencies: undici-types ">=7.24.0 <7.24.7" -"@types/node@20.19.39": - version "20.19.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.39.tgz#e98a3b575574070cd34b784bd173767269f95e99" - integrity sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw== +"@types/node@24.13.2": + version "24.13.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.13.2.tgz#3b9b280a7055128359f125eb1067d9a190f39854" + integrity sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA== dependencies: - undici-types "~6.21.0" + undici-types "~7.18.0" "@types/react-dom@19.2.3": version "19.2.3" @@ -5922,10 +5922,10 @@ unbox-primitive@^1.1.0: resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91" integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg== -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== +undici-types@~7.18.0: + version "7.18.2" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" + integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== universalify@^0.2.0: version "0.2.0"