Skip to content

breaking: Redesigned ESLint config #2778

breaking: Redesigned ESLint config

breaking: Redesigned ESLint config #2778

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
project_root_path: ./packages/eslint-plugin-svelte
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
- name: Install Packages
run: pnpm install
- name: Lint eslint-plugin-svelte
run: |
pnpm run build
pnpm run lint
working-directory: ${{ env.project_root_path }}
- name: Lint docs-svelte-kit
run: |
pnpm run build
pnpm run lint
working-directory: ./docs-svelte-kit
- name: Type Coverage
run: pnpm run typecov
working-directory: ${{ env.project_root_path }}
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
- name: Install Packages
run: pnpm install
- name: Build
run: |
pnpm run update
pnpm run build
working-directory: ${{ env.project_root_path }}
test:
name: 'Test for ESLint ${{ matrix.eslint }} on Node.js: ${{ matrix.node }} OS: ${{matrix.os}}'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
eslint: [8, 9]
node: [18.x, 20.x, 22.x, latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install Packages
run: pnpm install
- name: Build eslint-plugin-svelte
run: pnpm build
working-directory: ${{ env.project_root_path }}
# Hack: Install `eslint-plugin-svelte` is necessary for `packages/eslint-plugin-svelte/tests/src/configs` tests.
- name: Install eslint-plugin-svelte
run: pnpm install -D eslint-plugin-svelte
working-directory: ${{ env.project_root_path }}
- name: Install ESLint ${{ matrix.eslint }}
if: matrix.eslint != 9
run: pnpm install -D -w eslint@${{ matrix.eslint }}
- name: Test
run: pnpm test
working-directory: ${{ env.project_root_path }}
test-for-svelte-v4:
name: 'Test for Svelte v4 on Node.js: ${{ matrix.node }} OS: ${{matrix.os}}'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
eslint: [9]
node: [18, 20, 22]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install svelte@4
run: |
pnpm install -D svelte@4
rm -rf node_modules
working-directory: ${{ env.project_root_path }}
- name: Install ESLint ${{ matrix.eslint }}
run: |
pnpm install -D -w eslint@${{ matrix.eslint }}
rm -rf node_modules
- name: Install Packages
run: pnpm install
- name: Test
run: pnpm run test
working-directory: ${{ env.project_root_path }}
test-for-svelte-v3:
name: Test for Svelte v3
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [18]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install svelte@3
run: |
cd ./packages/eslint-plugin-svelte
pnpm install -D svelte@3
cd ../..
rm -rf packages/eslint-plugin-svelte/node_modules
rm -rf docs-svelte-kit/node_modules
rm -rf node_modules
- name: Install Packages
run: pnpm install
- name: Test
run: pnpm run test
working-directory: ${{ env.project_root_path }}
test-for-typescript-eslint-v5:
name: Test for typescript-eslint v5
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
node: [18]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install typescript-eslint v5
run: |
pnpm install -D -w @typescript-eslint/parser@5 @typescript-eslint/eslint-plugin@5
rm -rf node_modules
- name: Install Packages
run: pnpm install
- name: Test
run: pnpm run test
working-directory: ${{ env.project_root_path }}
update-resources:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v4
- name: Install Packages
run: pnpm install
- name: Update resources
run: pnpm run update
working-directory: ${{ env.project_root_path }}
- name: Check changes
run: |
git add --all && \
git diff-index --cached HEAD --stat --exit-code