mirror of
https://github.com/LHY0125/PathEditor.git
synced 2026-06-29 01:45:54 +08:00
chore: 同步 v5.0 基础设施完善到 v5.1
从 v5.0 cherry-pick 的开源项目基础设施改进: 新增配置文件: - .editorconfig, .gitattributes, .prettierrc, .markdownlint.json - commitlint.config.js 新增 GitHub 社区文件: - .github/dependabot.yml — 依赖自动更新 - .github/CODEOWNERS — 自动 PR 审查分配 - .github/FUNDING.yml — 开源赞助入口 新增文档: - ROADMAP.md — 路线图 - SUPPORT.md — 帮助指南 - docs/screenshots/ — 应用截图 新增 Git Hooks: - .husky/pre-commit — lint-staged 自动格式化+修复 - .husky/commit-msg — commitlint 校验 CI 强化: - 新增 Prettier 格式检查 - 新增 Vitest 覆盖率 + Codecov 上报 - 保留 v5.1 已有的 rust-cache + jsdom 全局环境 修复: - index.html 标题 v4.0 → v5.1 - PathEditDialog set-state-in-effect 改用 useRef prevOpen 守卫 - merge-preview.test.tsx no-explicit-any 修复 - 所有 TS/TSX 文件 Prettier 格式化统一 v5.1 保留特性: - @tanstack/react-virtual 虚拟滚动 - jsdom 全局测试环境 - Swatinem/rust-cache CI 加速 - 105 测试全部通过
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# 代码所有者 — 自动分配 PR 审查
|
||||
# https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
|
||||
|
||||
# 全局所有者
|
||||
* @LHY0125
|
||||
|
||||
# Rust 代码
|
||||
/core/ @LHY0125
|
||||
/cli/ @LHY0125
|
||||
/gui/ @LHY0125
|
||||
/Cargo.toml @LHY0125
|
||||
/rust-toolchain.toml @LHY0125
|
||||
|
||||
# 前端代码
|
||||
/src/ @LHY0125
|
||||
/tests/ @LHY0125
|
||||
/e2e/ @LHY0125
|
||||
|
||||
# CI/CD 和配置文件
|
||||
/.github/ @LHY0125
|
||||
@@ -0,0 +1,5 @@
|
||||
# 开源赞助
|
||||
# 支持 PathEditor 的开发
|
||||
|
||||
github: LHY0125
|
||||
# 如需定制功能或商业授权,请通过 GitHub Issues 联系
|
||||
@@ -0,0 +1,73 @@
|
||||
# Dependabot 自动依赖更新配置
|
||||
# https://docs.github.com/code-security/dependabot/dependabot-version-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
# npm 前端依赖
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "monday"
|
||||
time: "09:00"
|
||||
timezone: "Asia/Shanghai"
|
||||
versioning-strategy: "auto"
|
||||
allow:
|
||||
- dependency-type: "all"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "javascript"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
prefix-development: "chore(deps-dev)"
|
||||
open-pull-requests-limit: 5
|
||||
groups:
|
||||
react:
|
||||
patterns:
|
||||
- "react"
|
||||
- "react-dom"
|
||||
- "@types/react"
|
||||
- "@types/react-dom"
|
||||
tauri:
|
||||
patterns:
|
||||
- "@tauri-apps/*"
|
||||
testing:
|
||||
patterns:
|
||||
- "@testing-library/*"
|
||||
- "@playwright/test"
|
||||
- "vitest"
|
||||
- "jsdom"
|
||||
eslint:
|
||||
patterns:
|
||||
- "eslint"
|
||||
- "eslint-plugin-*"
|
||||
- "typescript-eslint"
|
||||
- "globals"
|
||||
- "@eslint/js"
|
||||
|
||||
# Cargo Rust 依赖
|
||||
- package-ecosystem: "cargo"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
day: "monday"
|
||||
time: "09:00"
|
||||
timezone: "Asia/Shanghai"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "rust"
|
||||
commit-message:
|
||||
prefix: "chore(deps)"
|
||||
prefix-development: "chore(deps-dev)"
|
||||
open-pull-requests-limit: 3
|
||||
|
||||
# GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
labels:
|
||||
- "dependencies"
|
||||
- "ci"
|
||||
commit-message:
|
||||
prefix: "ci(deps)"
|
||||
@@ -12,7 +12,7 @@ permissions:
|
||||
|
||||
jobs:
|
||||
frontend:
|
||||
name: 前端检查 (TypeScript + Lint + Test)
|
||||
name: 前端检查 (格式 + 类型 + Lint + 测试 + 覆盖率)
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -24,23 +24,37 @@ jobs:
|
||||
|
||||
- run: npm ci
|
||||
|
||||
- name: Prettier 格式检查
|
||||
run: npx prettier --check "src/**/*.{ts,tsx}" "tests/**/*.{ts,tsx}" "e2e/**/*.ts"
|
||||
|
||||
- name: TypeScript 类型检查
|
||||
run: npx tsc -b --noEmit
|
||||
|
||||
- name: ESLint
|
||||
run: npx eslint src/ tests/ e2e/
|
||||
|
||||
- name: Vitest 测试
|
||||
run: npm test
|
||||
- name: Vitest 测试 + 覆盖率
|
||||
run: npx vitest run --coverage
|
||||
|
||||
- name: 上传覆盖率到 Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
with:
|
||||
files: ./coverage/cobertura-coverage.xml
|
||||
flags: frontend
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
rust:
|
||||
name: Rust 检查 (Check + Clippy + Test)
|
||||
name: Rust 检查 (格式 + Check + Clippy + Test)
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
|
||||
- name: Cargo Format Check
|
||||
run: cargo fmt --check
|
||||
|
||||
- name: Cargo Check
|
||||
run: cargo check
|
||||
|
||||
@@ -49,6 +63,3 @@ jobs:
|
||||
|
||||
- name: Cargo Test
|
||||
run: cargo test
|
||||
|
||||
- name: Cargo Format Check
|
||||
run: cargo fmt --check
|
||||
|
||||
Reference in New Issue
Block a user