mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-22 19:52:14 +08:00
* ci(workflows): Revert nodejs version to v24.18.1 - Exactly match what was defined in `.tool-versions` * ci(renovate): Prevent 3 build tools from being automatically upgraded - Lock Nodejs, PNPM and Rust version in the repository - Nodejs, PNPM and Rust are infrastructure build tools or package manager for this repo - Human manual-bump is required for consistency and stability - Prevent bumping by Renovate Bot * ci(renovate): Unlock auto updates of 3 build tools - Re-allow Nodejs, PNPM and Rust from being automatically upgrade - Group version bumps together across version lockfiles, GitHub Workflows and Dev Containers Assisted-by: vscode-copilot-chat:gemini-3.7-flash codegraph * chore(deps): Bump 2 build tools to latest version - Bump Nodejs to `v24.20.0` across version lockfiles, GitHub Workflows and Dev Containers - Bump Rust toolchain to `v1.98.0` across version lockfiles, GitHub Workflows and Dev Containers Assisted-by: vscode-copilot-chat:gemini-3.7-flash codegraph
88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
name: Frontend Check
|
|
|
|
on:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
HUSKY: 0
|
|
|
|
jobs:
|
|
frontend:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
|
|
- name: Check frontend changes
|
|
id: check_frontend
|
|
uses: dorny/paths-filter@v4
|
|
with:
|
|
filters: |
|
|
frontend:
|
|
- 'src/**'
|
|
- '**/*.js'
|
|
- '**/*.ts'
|
|
- '**/*.tsx'
|
|
- '**/*.css'
|
|
- '**/*.scss'
|
|
- '**/*.json'
|
|
- '**/*.md'
|
|
- 'package.json'
|
|
- 'pnpm-lock.yaml'
|
|
- 'pnpm-workspace.yaml'
|
|
- 'knip.json'
|
|
- 'eslint.config.ts'
|
|
- 'tsconfig.json'
|
|
- 'vite.config.*'
|
|
|
|
- name: Skip if no frontend changes
|
|
if: steps.check_frontend.outputs.frontend != 'true'
|
|
run: echo "No frontend changes, skipping frontend checks."
|
|
|
|
- name: Install pnpm
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
uses: pnpm/action-setup@v6
|
|
with:
|
|
run_install: false
|
|
|
|
- uses: actions/setup-node@v7
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
with:
|
|
node-version: '24.20.0'
|
|
cache: 'pnpm'
|
|
|
|
- name: Restore pnpm cache
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: ~/.pnpm-store
|
|
key: "pnpm-shared-stable-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }}"
|
|
restore-keys: |
|
|
pnpm-shared-stable-${{ runner.os }}-
|
|
|
|
- run: pnpm install --frozen-lockfile
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
|
|
- name: Run Prettier check
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
run: pnpm format:check
|
|
|
|
- name: Run ESLint
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
run: pnpm lint
|
|
|
|
- name: Run TypeScript typecheck
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
run: pnpm typecheck
|
|
|
|
- name: Run tests
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
run: pnpm test
|
|
|
|
- name: Run Knip
|
|
if: steps.check_frontend.outputs.frontend == 'true'
|
|
run: pnpm knip:check
|