mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-07-06 17:07:29 +08:00
1a8b5f4977
package.json 里 lint:i18n = "bun scripts/check_i18n.ts",但 pr-check.yml 只装了 Node 没装 bun,I18n check 步骤报 sh: bun: not found。 之前这个错误被前两步(lint / typecheck)的失败遮住,前两步修了之后才暴露。 用官方 oven-sh/setup-bun 一步搞定,放在 setup-node 之后、install 之前。
84 lines
2.4 KiB
YAML
84 lines
2.4 KiB
YAML
name: PR Check
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
types: [opened, edited, synchronize, reopened]
|
|
|
|
jobs:
|
|
# 检查 PR 标题是否符合 Conventional Commits 规范
|
|
pr-title:
|
|
name: PR Title
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
|
|
- name: Install commitlint
|
|
run: npm install --no-save @commitlint/cli @commitlint/config-conventional
|
|
|
|
- name: Validate PR title
|
|
env:
|
|
PR_TITLE: ${{ github.event.pull_request.title }}
|
|
run: echo "$PR_TITLE" | npx commitlint
|
|
|
|
# 检查所有提交信息是否符合 Conventional Commits 规范
|
|
commit-messages:
|
|
name: Commit Messages
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
|
|
- name: Install commitlint
|
|
run: npm install --no-save @commitlint/cli @commitlint/config-conventional
|
|
|
|
- name: Validate commit messages
|
|
run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose
|
|
|
|
# 运行 lint 和类型检查
|
|
code-quality:
|
|
name: Code Quality
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 24
|
|
|
|
# lint:i18n 脚本用 bun 跑(package.json: "bun scripts/check_i18n.ts"),
|
|
# CI 默认环境没有 bun 会报 sh: bun: not found
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
|
|
- name: Install dependencies
|
|
run: npm install
|
|
|
|
- name: Lint
|
|
run: npx eslint --max-warnings 0 "src/**/*.{ts,tsx,vue,js}"
|
|
|
|
# tsconfig.web.json 显式 require src/renderer/{auto-imports,components}.d.ts
|
|
# 这两个文件由 unplugin-auto-import / unplugin-vue-components 在 vite 启动时
|
|
# 生成,且被 .gitignore 排除(58922dc 维护者主动设置)。CI 直接跑 typecheck
|
|
# 拿不到 d.ts 会报 TS2688,先跑一次 build 触发 unplugin 生成
|
|
- name: Build (generates auto-import / components d.ts)
|
|
run: npm run build
|
|
|
|
- name: Type check
|
|
run: npm run typecheck
|
|
|
|
- name: I18n check
|
|
run: npm run lint:i18n
|