diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 00000000000..81a0869a476 --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,28 @@ +name: PR Checks + +on: + pull_request: + branches: + - main + +# Cancel in-progress runs when a new commit is pushed to the PR +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref }} + cancel-in-progress: true + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.12.0 + + - name: Install dependencies + run: npm ci + + # Run oxlint. Errors and warnings will be added as annotations to the PR + - name: Lint code + run: npm run lint -- --format=github diff --git a/package-lock.json b/package-lock.json index 876b49997e5..8bcd124cd89 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,6 +52,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "^2.2.0", + "oxlint": "^0.9.6", "tailwindcss": "^3.3.2" }, "engines": { @@ -4036,6 +4037,110 @@ "node": ">= 8" } }, + "node_modules/@oxlint/darwin-arm64": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-arm64/-/darwin-arm64-0.9.6.tgz", + "integrity": "sha512-dw0JMjgymvvYQE38D2sexcV+SNER2PL2TrUyYiy1YuhHSPeH8UX/c+iJstl02K03RRiNJIAmEdYv3a98+t/x5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxlint/darwin-x64": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/darwin-x64/-/darwin-x64-0.9.6.tgz", + "integrity": "sha512-fvXgv9eI6U1uRXUmdpWbcX1Tkv2VeYiIwrwBDARuYqI+YbxiuCsBx8RbRrw1C6SrKuZnihAPZIhebH/YRz/ZkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@oxlint/linux-arm64-gnu": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-0.9.6.tgz", + "integrity": "sha512-9PIH+6ebuLlPFPguzpusnS0n0MbilvSdQ5CpHIFa9lA5qXAIX1UrKUwRz8MwXY9JZYY9YEHOqnHLQvJtY4r2Ag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-arm64-musl": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/linux-arm64-musl/-/linux-arm64-musl-0.9.6.tgz", + "integrity": "sha512-2TQ0Ln0GzW0U8UZJqhgXWr5yncZraDqx8ylSCE6o6VYiO5CkFUSqLnornH+OYQwOLyIgnxneITnFI7mCWC3/Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-x64-gnu": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-gnu/-/linux-x64-gnu-0.9.6.tgz", + "integrity": "sha512-jlZSjZ1Qu7EQmGFZn1+HKqlQvgW5L+qkF5r1W4g03/b35I1XwaGaij5bw07cRsy70oIQOvUE+5wWGqqIxwtpDA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/linux-x64-musl": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/linux-x64-musl/-/linux-x64-musl-0.9.6.tgz", + "integrity": "sha512-mPwnz8PTZTv7Swc3KPl2MdTjGxBLN8R1gjSWaWd8PAR8zQ9TFiz48hpI1m0MJV5KY9oOSUGFt8MmknD2BOqZ6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@oxlint/win32-arm64": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/win32-arm64/-/win32-arm64-0.9.6.tgz", + "integrity": "sha512-gLS/kJh4TsbynN71O6moaXbdS7hfilmLAbMy3itanxta1+oW+W1b5yMn3XnYQKXZ4z48ERi2qf0Khe21VFXCZw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@oxlint/win32-x64": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/@oxlint/win32-x64/-/win32-x64-0.9.6.tgz", + "integrity": "sha512-z8m0EiG4UtVr58b/7HenBSyaEo2dZNUVW57nx1DMO+XXQF/jg+SqYPbuDzMOD8Ygwjo1nhf8up5WiUcl/8ELAw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@polka/url": { "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", @@ -11810,6 +11915,31 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/oxlint": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-0.9.6.tgz", + "integrity": "sha512-5UeXQK7n6qIktK9JTG7Nh8mH1NM9A/jssdCMw0P02mob6DwM13ycgeZtrD7Z22J7QSJKfGnfu41S2YSJJN3zaQ==", + "dev": true, + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": ">=14.*" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/darwin-arm64": "0.9.6", + "@oxlint/darwin-x64": "0.9.6", + "@oxlint/linux-arm64-gnu": "0.9.6", + "@oxlint/linux-arm64-musl": "0.9.6", + "@oxlint/linux-x64-gnu": "0.9.6", + "@oxlint/linux-x64-musl": "0.9.6", + "@oxlint/win32-arm64": "0.9.6", + "@oxlint/win32-x64": "0.9.6" + } + }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", diff --git a/package.json b/package.json index 25dd3a08d09..12dfd217463 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "docusaurus": "docusaurus", "start": "docusaurus start", "build": "docusaurus build", + "lint": "oxlint", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", @@ -58,6 +59,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "^2.2.0", + "oxlint": "^0.9.6", "tailwindcss": "^3.3.2" }, "browserslist": {