ci: lint JSON files using ESLint

Add GitHub Actions CI which lints json files
using official ESLint json plugin.

Signed-off-by: Yanase Yuki <dev@zpc.st>
pull/7813/head
Yanase Yuki 2025-06-03 19:04:56 +09:00 committed by Paul Donald
parent a6d5ffd6df
commit 98e71acd06
3 changed files with 48 additions and 1 deletions

33
.github/workflows/eslint.yml vendored 100644
View File

@ -0,0 +1,33 @@
---
name: "LuCI repo ESLint JSON Analysis"
on:
push:
branches: [ "master" ]
path:
- '**/*.json'
pull_request:
branches: [ "master" ]
path:
- '**/*.json'
permissions: {}
jobs:
eslint:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: latest
- name: Install ESLint
run: npm install --no-audit --no-fund --save-dev eslint@latest @eslint/json@latest
# Currently, we lint JSON only.
- name: Run ESLint
run: npx eslint **/*.json

3
.gitignore vendored
View File

@ -17,4 +17,5 @@ modules/luci-compat/src/plural_formula.c
modules/luci-compat/src/plural_formula.h
docs/jsapi/*
!docs/jsapi/README.md
**eslint.config**
**eslint.config**
!eslint.config.mjs

13
eslint.config.mjs 100644
View File

@ -0,0 +1,13 @@
import { defineConfig } from "eslint/config";
import json from "@eslint/json";
export default defineConfig([
{
files: ["**/*.json"],
ignores: ["package-lock.json"],
plugins: { json },
language: "json/json",
extends: ["json/recommended"],
},
]);