diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 56f410f..0a62546 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -32,7 +32,13 @@ on: # yamllint disable-line rule:truthy jobs: eslint: name: Run eslint scanning - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ["ubuntu-24.04", "macos-14", "windows-2022"] + node-version: [18.x, 20.x, 22.x] + # See supported Node.js release schedule + # at https://nodejs.org/en/about/releases/ permissions: contents: read security-events: write diff --git a/.github/workflows/node-coverage.js.yml b/.github/workflows/node-coverage.js.yml index 25ec9b1..fc18994 100644 --- a/.github/workflows/node-coverage.js.yml +++ b/.github/workflows/node-coverage.js.yml @@ -28,9 +28,6 @@ jobs: - name: Install dependencies run: npm ci --verbose - - name: Lint - run: npm run lint - - name: Run the tests run: npm run jest:ci -- --coverage diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index ae22d54..dba51cf 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -1,5 +1,4 @@ --- - name: Node.js CI Tests on: # yamllint disable-line rule:truthy @@ -13,7 +12,7 @@ on: # yamllint disable-line rule:truthy jobs: build: name: NodeJS Jest CI Test - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.os }} strategy: matrix: os: ["ubuntu-24.04", "macos-14", "windows-2022"] @@ -33,8 +32,5 @@ jobs: - name: Install dependencies run: npm ci --verbose - - name: Lint - run: npm run lint - - name: Run the tests run: npm run jest:ci diff --git a/package-lock.json b/package-lock.json index 5dff030..b2cb9b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,6 +22,7 @@ "@types/eslint__js": "^8.42.3", "@types/jest": "^29.5.5", "@typescript-eslint/eslint-plugin": "^8.5.0", + "cross-env": "^7.0.3", "eslint": "^8.57.1", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.0.0", @@ -2667,11 +2668,31 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/cross-spawn": { + "node_modules/cross-env": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", diff --git a/package.json b/package.json index f56c363..8f13fda 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@types/eslint__js": "^8.42.3", "@types/jest": "^29.5.5", "@typescript-eslint/eslint-plugin": "^8.5.0", + "cross-env": "^7.0.3", "eslint": "^8.57.1", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^9.0.0", @@ -36,13 +37,13 @@ "scripts": { "build": "tsc -p tsconfig.prod.json", "start": "npm run test", - "lint": "npx --yes eslint --env-info; npx --yes eslint . --color --max-warnings=0 && echo '✔ Your code looks good.'", - "jest:ci": "node --experimental-vm-modules ./node_modules/.bin/jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug", - "jest:clean": "npx --yes jest --clearCache && npx --yes watchman watch-del-all", - "jest:bruteforce": "BRUTEFORCE=true node --experimental-vm-modules ./node_modules/.bin/jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug", - "jest:watch": "node --experimental-vm-modules ./node_modules/.bin/jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug --watchAll", - "style:format": "npx --yes prettier --write 'src/**/*.ts'", - "style:check": "npx --yes prettier --check 'src/**/*.ts'", + "lint": "npx eslint --env-info; npx eslint . --color --max-warnings=0 && echo '✔ Your code looks good.'", + "jest:ci": "cross-env NODE_OPTIONS=--experimental-vm-modules npx jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug", + "jest:clean": "npx jest --clearCache && npx watchman watch-del-all", + "jest:bruteforce": "cross-env BRUTEFORCE=true NODE_OPTIONS=--experimental-vm-modules npx jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug", + "jest:watch": "cross-env NODE_OPTIONS=--experimental-vm-modules npx jest --no-cache --ci --color --detectOpenHandles --forceExit --runInBand --debug --watchAll", + "style:format": "npx prettier --write 'src/**/*.ts'", + "style:check": "npx prettier --check 'src/**/*.ts'", "test": "jest", "update-all": "npm install $(npm outdated | cut -d' ' -f 1 | sed '1d' | xargs -I '$' echo '$@latest' | xargs echo)" }