mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-21 23:05:46 +00:00
47f2883ca2
Encode the feature-folder layering contract as a CI gate: lib is the floor, store/ui must not import features/app, cross-feature only via the barrel, no cycles. dependency-cruiser resolves the @/ alias via tsconfig; tests excluded. Land as a ratchet: the 738 current violations are seeded into .dependency-cruiser-known-violations.json and ignored via --ignore-known, so HEAD is green and any NEW violation fails CI. Regenerate the baseline as the drain removes an exception; the count is the tracked residual debt. Wired via `npm run dep:check` into a new dependency-cruiser job in eslint.yml and the ci-ok required-check aggregate.
67 lines
1.6 KiB
YAML
67 lines
1.6 KiB
YAML
name: eslint
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- 'src/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- 'vitest.config.ts'
|
|
- 'vite.config.ts'
|
|
- 'tsconfig.json'
|
|
- 'eslint.config.mjs'
|
|
- '.dependency-cruiser.cjs'
|
|
- '.dependency-cruiser-known-violations.json'
|
|
- '.github/workflows/eslint.yml'
|
|
- '.github/frontend-hot-path-files.txt'
|
|
- 'scripts/check-frontend-hot-path-coverage.sh'
|
|
- 'scripts/check-css-import-graph.mjs'
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'src/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- 'vitest.config.ts'
|
|
- 'vite.config.ts'
|
|
- 'tsconfig.json'
|
|
- 'eslint.config.mjs'
|
|
- '.dependency-cruiser.cjs'
|
|
- '.dependency-cruiser-known-violations.json'
|
|
- '.github/workflows/eslint.yml'
|
|
- '.github/frontend-hot-path-files.txt'
|
|
- 'scripts/check-frontend-hot-path-coverage.sh'
|
|
- 'scripts/check-css-import-graph.mjs'
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
eslint:
|
|
name: eslint
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 'lts/*'
|
|
cache: 'npm'
|
|
- run: npm ci
|
|
- name: eslint
|
|
run: npm run lint
|
|
|
|
dependency-cruiser:
|
|
name: dependency-cruiser
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: 'lts/*'
|
|
cache: 'npm'
|
|
- run: npm ci
|
|
- name: layering + cycle guard
|
|
run: npm run dep:check
|