diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 94f4e6413ab4..a7a7da4f9224 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,6 +36,14 @@ jobs: run: yarn dedupe --check - name: Build resources run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages + - name: Setup lint cache + uses: actions/cache@v3.3.1 + with: + path: | + node_modules/.cache/prettier + node_modules/.cache/eslint + key: lint-${{ github.sha }} + restore-keys: lint- - name: Run eslint run: yarn run lint:eslint --quiet - name: Run tsc diff --git a/lint-staged.config.js b/lint-staged.config.js index 27204507ea69..8740aaab198a 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -1,6 +1,9 @@ export default { - "*.?(c|m){js,ts}": ["eslint --fix", "prettier --write"], - "*.{json,css,md,markdown,html,y?aml}": "prettier --write", + "*.?(c|m){js,ts}": [ + "eslint --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --fix", + "prettier --cache --write", + ], + "*.{json,css,md,markdown,html,y?aml}": "prettier --cache --write", "translations/*/*.json": (files) => 'printf "%s\n" "Translation files should not be added or modified here. Instead, make the necessary modifications in src/translations/en.json. Other languages are managed externally. Please see https://developers.home-assistant.io/docs/translations/ for details." ' + files.join(" ") + diff --git a/package.json b/package.json index 77c8b240f691..b669c4ccecce 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,10 @@ "version": "1.0.0", "scripts": { "build": "script/build_frontend", - "lint:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --ignore-path .gitignore", - "format:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --fix --ignore-path .gitignore", - "lint:prettier": "prettier . --check", - "format:prettier": "prettier . --write", + "lint:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-path=.gitignore", + "format:eslint": "eslint \"**/src/**/*.{js,ts,html}\" --cache --cache-strategy=content --cache-location=node_modules/.cache/eslint/.eslintcache --ignore-path=.gitignore --fix", + "lint:prettier": "prettier . --cache --check", + "format:prettier": "prettier . --cache --write", "lint:types": "tsc", "lint:lit": "lit-analyzer \"**/src/**/*.ts\" --format markdown --outFile result.md", "lint": "yarn run lint:eslint && yarn run lint:prettier && yarn run lint:types",