mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-14 21:20:48 +08:00
The v2.5.4 notes had grown to 97 free-form entries exposed verbatim in the in-app update dialog. Distill them to 58 one-theme-per-line entries capped at ~60 CJK characters with no internal terminology, and move the writing rules into template/Changelog.md so every cycle starts from them. Release plumbing now agrees on the --- divider: extract_update_logs.sh stops there like updatelog.mjs, so file-only content never reaches release bodies, while updater.mjs appends a per-tag See More link to the update notes it generates. scripts-workflow/group_platforms.sh locks platform entries under emoji platform headings, wired into pre-commit, release and autobuild CI, and the changelog bump script; AGENTS.md points agents at the template rules.
157 lines
3.6 KiB
TOML
157 lines
3.6 KiB
TOML
[config]
|
|
skip_core_tasks = true
|
|
skip_git_env_info = true
|
|
skip_rust_env_info = true
|
|
skip_crate_env_info = true
|
|
|
|
# --- Backend ---
|
|
|
|
[tasks.rust-format]
|
|
description = "Run rustfmt on Rust code"
|
|
install_crate = "rustfmt"
|
|
command = "cargo"
|
|
args = ["fmt", "--", "--emit=files"]
|
|
|
|
[tasks.rust-clippy]
|
|
description = "Run cargo clippy to lint the code"
|
|
command = "cargo"
|
|
args = ["clippy", "--all-targets", "--all-features", "--", "-D", "warnings"]
|
|
|
|
# --- Frontend ---
|
|
|
|
[tasks.typecheck]
|
|
description = "Run type checks"
|
|
command = "pnpm"
|
|
args = ["typecheck"]
|
|
|
|
[tasks.typecheck.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "typecheck"]
|
|
|
|
[tasks.knip-report]
|
|
description = "Report unused frontend code and dependencies"
|
|
command = "pnpm"
|
|
args = ["knip:report"]
|
|
|
|
[tasks.knip-report.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "knip:report"]
|
|
|
|
[tasks.knip-check]
|
|
description = "Fail on unused frontend code and dependencies"
|
|
command = "pnpm"
|
|
args = ["knip:check"]
|
|
|
|
[tasks.knip-check.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "knip:check"]
|
|
|
|
[tasks.lint-staged]
|
|
description = "Run lint-staged for staged files"
|
|
command = "pnpm"
|
|
args = ["exec", "lint-staged"]
|
|
|
|
[tasks.lint-staged.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "exec", "lint-staged"]
|
|
|
|
[tasks.i18n-format]
|
|
description = "Format i18n keys"
|
|
command = "pnpm"
|
|
args = ["i18n:format"]
|
|
|
|
[tasks.i18n-format.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "i18n:format"]
|
|
|
|
[tasks.i18n-types]
|
|
description = "Generate i18n key types"
|
|
command = "pnpm"
|
|
args = ["i18n:types"]
|
|
|
|
[tasks.i18n-types.windows]
|
|
command = "cmd.exe"
|
|
args = ["/d", "/c", "pnpm", "i18n:types"]
|
|
|
|
[tasks.git-add]
|
|
description = "Add generated files back to git index"
|
|
command = "git"
|
|
args = [
|
|
"add",
|
|
"src/locales",
|
|
"crates/clash-verge-i18n/locales",
|
|
"src/types/generated",
|
|
]
|
|
|
|
# --- Jobs ---
|
|
|
|
[tasks.frontend-format]
|
|
description = "Frontend format checks"
|
|
script_runner = "@duckscript"
|
|
script = '''
|
|
# i18n related changes
|
|
has_i18n = exec git diff --cached --quiet -- src/locales crates/clash-verge-i18n/locales
|
|
if eq ${has_i18n.code} 1
|
|
cm_run_task i18n-format
|
|
cm_run_task i18n-types
|
|
cm_run_task git-add
|
|
end
|
|
|
|
# frontend related changes
|
|
has_frontend = exec git diff --cached --quiet -- "*.js" "*.jsx" "*.ts" "*.tsx" "*.json" "*.css" "*.scss" "*.html"
|
|
if eq ${has_frontend.code} 1
|
|
cm_run_task lint-staged
|
|
end
|
|
'''
|
|
|
|
# --- Git Hooks ---
|
|
|
|
[tasks.pre-commit]
|
|
description = "Pre-commit checks: format only"
|
|
script_runner = "@duckscript"
|
|
script = '''
|
|
# rust related changes
|
|
has_rust = exec git diff --cached --quiet -- "*.rs" Cargo.toml Cargo.lock
|
|
if eq ${has_rust.code} 1
|
|
cm_run_task rust-format
|
|
end
|
|
|
|
# frontend checks
|
|
cm_run_task frontend-format
|
|
|
|
# changelog platform grouping
|
|
has_changelog = exec git diff --cached --quiet -- Changelog.md
|
|
if eq ${has_changelog.code} 1
|
|
grouped = exec bash scripts-workflow/group_platforms.sh
|
|
if not eq ${grouped.code} 0
|
|
echo "Changelog platform grouping failed"
|
|
exit 1
|
|
end
|
|
exec git add Changelog.md
|
|
end
|
|
'''
|
|
|
|
[tasks.pre-push]
|
|
description = "Pre-push checks: lint, typecheck, and unused files"
|
|
script_runner = "@duckscript"
|
|
script = '''
|
|
has_upstream = exec git rev-parse --abbrev-ref --symbolic-full-name @{u}
|
|
if not eq ${has_upstream.code} 0
|
|
echo "No upstream found, skipping diff-based checks"
|
|
exit 0
|
|
end
|
|
|
|
# rust related changes
|
|
has_rust = exec git diff @{u}..HEAD --quiet -- "*.rs" Cargo.toml Cargo.lock
|
|
if eq ${has_rust.code} 1
|
|
cm_run_task rust-clippy
|
|
end
|
|
|
|
# frontend related changes
|
|
has_frontend = exec git diff @{u}..HEAD --quiet -- "*.js" "*.jsx" "*.ts" "*.tsx" "*.json" "*.css" "*.scss" "*.html"
|
|
if eq ${has_frontend.code} 1
|
|
cm_run_task typecheck
|
|
cm_run_task knip-check
|
|
end
|
|
'''
|