105 lines
2.5 KiB
Markdown
105 lines
2.5 KiB
Markdown
# Skill: Testing, CI and Release
|
|
|
|
## Когда использовать
|
|
|
|
Используй этот skill при добавлении CI, release scripts, build fixes, test changes, dependency updates, packaging changes или перед финальным отчетом по крупной задаче.
|
|
|
|
## Minimal local checks
|
|
|
|
Frontend:
|
|
|
|
```powershell
|
|
npm ci
|
|
npm run build
|
|
```
|
|
|
|
Rust:
|
|
|
|
```powershell
|
|
cd src-tauri
|
|
cargo fmt --all -- --check
|
|
cargo clippy --all-targets --all-features -- -D warnings
|
|
cargo test --all-targets
|
|
```
|
|
|
|
Tauri:
|
|
|
|
```powershell
|
|
npm run tauri -- info
|
|
npm run tauri -- build
|
|
```
|
|
|
|
PowerShell plan-only:
|
|
|
|
```powershell
|
|
& .\scripts\install-control-app.ps1 -PlanOnly
|
|
& .\scripts\install-proxyfier.ps1 -PlanOnly
|
|
& .\scripts\install-singbox.ps1 -PlanOnly
|
|
```
|
|
|
|
## CI recommendation
|
|
|
|
Add GitHub Actions with at least:
|
|
|
|
- frontend build on Windows and Ubuntu if practical;
|
|
- Rust fmt/clippy/test;
|
|
- PowerShell syntax/plan-only smoke on Windows;
|
|
- Tauri build on Windows for release branches/tags;
|
|
- artifact upload only for trusted release workflow.
|
|
|
|
## Dependency updates
|
|
|
|
When changing dependencies:
|
|
|
|
- Update lockfiles.
|
|
- Check Tauri v2 compatibility.
|
|
- Avoid adding large UI/runtime dependencies for tiny tasks.
|
|
- Avoid adding shell/process libraries that bypass existing backend boundaries.
|
|
- Note why dependency is needed.
|
|
|
|
## Release hygiene
|
|
|
|
Before release:
|
|
|
|
- Verify app version in `package.json` and Tauri config if applicable.
|
|
- Verify icons/assets size.
|
|
- Verify CSP and capabilities.
|
|
- Verify no raw secrets/test URLs in repo.
|
|
- Verify installer scripts with `-PlanOnly`.
|
|
- Verify clean install on Windows VM.
|
|
- Verify external SOCKS5 flow.
|
|
- Verify local sing-box subscription flow.
|
|
- Verify uninstall/safe cleanup behavior.
|
|
|
|
## Final report format
|
|
|
|
```text
|
|
Changed:
|
|
- ...
|
|
|
|
Verified:
|
|
- npm run build
|
|
- cargo test
|
|
|
|
Not verified:
|
|
- Windows elevated install/uninstall, because ...
|
|
|
|
Risks:
|
|
- ...
|
|
```
|
|
|
|
Do not write “all tests pass” unless all listed relevant tests actually ran. Humanity has enough fictional dashboards.
|
|
|
|
## Как отчитываться
|
|
|
|
Перед финальным ответом применить `.agent/skills/communication-reporting/SKILL.md` и `.agent/checklists/communication.md`.
|
|
|
|
Минимум для нетривиальной задачи:
|
|
|
|
- короткая сводка;
|
|
- таблица файлов `Файл / Что изменилось / Зачем`;
|
|
- важные места без пересказа каждой строки;
|
|
- что проверено;
|
|
- что не проверено;
|
|
- конкретные риски.
|