chore(node): move repo tooling to node 24

Align local version markers and GitHub Actions with Node 24, switch the default test entrypoint to the maintained Vitest runner, and replace pnpm-incompatible npm helpers in repo scripts.

This also removes the obsolete AVA plus esm path and excludes disabled test fixtures from generic Vitest discovery so CI reflects the supported test surface.
This commit is contained in:
ThatGuySam 2026-03-15 12:55:25 -05:00
parent 747e564e17
commit fcda9f0a02
9 changed files with 43 additions and 641 deletions

View file

@ -14,11 +14,18 @@ jobs:
name: Deploy
steps:
- name: Checkout
uses: actions/checkout@master
uses: actions/checkout@v6
- name: Use Node.js 24
uses: actions/setup-node@v6
with:
node-version-file: .nvmrc
cache: pnpm
- name: Setup PNPM
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v4
with:
version: 10.12.1
run_install: false
- name: Write Wrangler configs

View file

@ -1,9 +1,8 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Run Ava Tests
# This workflow validates the Node 24 toolchain on GitHub-hosted runners.
name: Run Node 24 Checks
on:
workflow_dispatch:
push:
branches: [ master ]
pull_request:
@ -16,18 +15,24 @@ jobs:
strategy:
matrix:
node-version: [14.x, 15.x]
node-version: [24.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
- name: Setup PNPM
uses: pnpm/action-setup@v4
with:
version: 10.12.1
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- run: |
touch .env
echo ${{ secrets.GH_ENV }} >> .env
- run: npm ci
- run: npm run generate
- run: npm test
- run: pnpm install --frozen-lockfile
- run: pnpm build
- run: pnpm test

2
.nvmrc
View file

@ -1 +1 @@
v22
v24

View file

@ -1,24 +0,0 @@
/**
* @type {import('ava').AVAConfig}
*/
export default () => {
return {
require: [
'dotenv/config',
'esm',
'tsconfig-paths/register'
],
// https://github.com/avajs/ava/blob/main/docs/recipes/watch-mode.md
watchMode: {
ignoreChanges: [
'!**/*.{js,vue}',
'./build',
'./dist',
'./.output',
],
},
// tap: true,
// verbose: true,
color: true
}
}

View file

@ -1,6 +1,6 @@
import fs from 'fs-extra'
import axios from 'axios'
import 'dotenv/config'
import 'dotenv/config.js'
import {
// storkVersion,

View file

@ -7,7 +7,7 @@
"packageManager": "pnpm@10.12.1",
"engines": {
"pnpm": "^10.*",
"node": ">=22",
"node": ">=24",
"yarn": "forbidden, this project uses pnpm",
"npm": "forbidden, this project uses pnpm"
},
@ -29,17 +29,17 @@
"test-listings": "pnpm run with-env vitest ./test/listings",
"test-postbuild-api": "pnpm test-listings",
"test-vitest": "vitest",
"test": "ava --timeout=1m --verbose",
"test": "vitest run",
"dev": "pnpm run dev-astro",
"build": "pnpm run generate-astro",
"build-api": "pnpm run clone-readme && npx vite-node build-lists.js -- --with-api --no-lists",
"build-lists-and-api": "pnpm run clone-readme && npx vite-node build-lists.js -- --with-api",
"generate-dev": "pnpm run generate && npm test",
"download-stork:toml": "npx vite-node scripts/download-stork-toml.js",
"download-stork:executable": "npx vite-node scripts/download-stork-executable.js",
"build-api": "pnpm run clone-readme && pnpm exec vite-node build-lists.js -- --with-api --no-lists",
"build-lists-and-api": "pnpm run clone-readme && pnpm exec vite-node build-lists.js -- --with-api",
"generate-dev": "pnpm build && pnpm test",
"download-stork:toml": "pnpm exec vite-node scripts/download-stork-toml.js",
"download-stork:executable": "pnpm exec vite-node scripts/download-stork-executable.js",
"setup-stork": "pnpm run \"/^download-stork:.*/\" --parallel",
"build-stork-index": "./$npm_package_config_stork_executable build --input $npm_package_config_stork_toml --output $npm_package_config_stork_index",
"build-stork-index-js": "npx vite-node scripts/build-stork-index.js",
"build-stork-index-js": "pnpm exec vite-node scripts/build-stork-index.js",
"stork-search": "./$npm_package_config_stork_executable search --index $npm_package_config_stork_index --query $1",
"stork-index": "pnpm setup-stork && pnpm build-stork-index",
"stork-netlify": "chmod +x scripts/stork-netlify.sh && ./scripts/stork-netlify.sh",
@ -54,8 +54,8 @@
"scan-new-apps": "pnpm exec vite-node scripts/scan-new-apps.js",
"with-env": "dotenv -e .env -- ",
"cloudflare-deploy": "pnpm run build-api",
"vercel-build": "npx vite-node scripts/vercel-build.js",
"netlify-prebuild:download-sitemaps": "npx vite-node scripts/download-sitemaps.js",
"vercel-build": "pnpm exec vite-node scripts/vercel-build.js",
"netlify-prebuild:download-sitemaps": "pnpm exec vite-node scripts/download-sitemaps.js",
"netlify-prebuild:test-prebuild-functions": "pnpm test-prebuild && pnpm test-api-client && pnpm test-listings",
"netlify-prebuild": "pnpm run \"/^netlify-prebuild:.*/\" && pnpm stork-index",
"netlify-postbuild:test-postbuild-functions": "vitest test/main.test.ts",
@ -127,14 +127,12 @@
"@astrojs/tailwind": "^6.0.2",
"@vitest/web-worker": "^4.1.0",
"autoprefixer": "^10.0.2",
"ava": "^6.2.0",
"babel-eslint": "^8.2.1",
"cssnano": "^4.1.10",
"dotenv": "^8.2.0",
"dotenv-cli": "^8.0.0",
"eslint": "^8.14.0",
"eslint-plugin-vue": "^8.7.1",
"esm": "^3.2.25",
"fast-xml-parser": "^3.19.0",
"madge": "^5.0.1",
"msw": "^1.2.3",

588
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
import fs from 'fs-extra'
import 'dotenv/config'
import 'dotenv/config.js'
import axios from 'axios'
import {

View file

@ -1,4 +1,4 @@
import { defineConfig } from 'vitest/config'
import { configDefaults, defineConfig } from 'vitest/config'
import astroConfig from './astro.config.mjs'
@ -12,7 +12,11 @@ const vitestConfig = {
test: {
// testTimeout: 60 * 1000,
setupFiles: 'tsconfig-paths/register'
setupFiles: 'tsconfig-paths/register',
exclude: [
...configDefaults.exclude,
'test/_disabled/**'
]
}
}