|
# Tools/Scripts
仓库级 PowerShell 脚本:CI é—¨ç¦ä¸Žæœ¬åœ°å¼€å‘工具。与 `Benchmark/`ã€`Samples/` 下éšé¡¹ç›®èµ°çš„脚本ä¸åŒï¼Œè¿™äº›è„šæœ¬æœåŠ¡äºŽæ•´ä¸ªä»“åº“ã€‚
约定:脚本ä½äºŽ `Tools/Scripts/`,用「上两级ã€å®šä½ä»“åº“æ ¹ç›®å½•ï¼›`check-english-exceptions.ps1` 与 `sync-readme-*.ps1` 妿供 `-Root` 供下游仓库å¤ç”¨ã€‚
## 脚本索引
| 脚本 | 用途 | é˜»æ– CI | 调用方 |
|---|---|---|---|
| `run-tests.ps1` | 本地全é‡å¹¶è¡Œè·‘测:é€å·¥ç¨‹æž„å»ºä¸€æ¬¡ï¼Œå…¨éƒ¨å®¿ä¸»å¹¶å‘ `dotnet test`,å•宿主超时兜底 + trx 汇总;`-Repeat` åšç¨³å®šæ€§åŽ‹æµ‹ | å¦ | 本地命令行 |
| `check-english-exceptions.ps1` | è¿è¡Œæ—¶æ¶ˆæ¯ï¼ˆå¼‚å¸¸ã€æ—¥å¿—ã€æŽ§åˆ¶å°ã€åŸ‹ç‚¹æ ‡ç¾ï¼‰ä¸å¾—å«ä¸æ–‡ | 是 | `test.yml`ï¼›`run-tests.ps1` å‰ç½® |
| `check-locales.ps1` | 多è¯è¨€è¯è¡¨é”®é›†ã€å ä½ç¬¦ã€æ ¼å¼è¯´æ˜Žç¬¦ä¸€è‡´æ€§ | 是 | `test.yml`ï¼›`run-tests.ps1` å‰ç½® |
| `check-package-consumer.ps1` | 下游仅 `PackageReference` + `Locales/*.yml` 的端到端验è¯ï¼ˆæ‰“包ã€nupkg 内容ã€ç¿»è¯‘与英文回退) | 是 | `test.yml`ã€`publish.yml`ã€`publish-beta.yml` |
| `check-api-compat.ps1` | 以 NuGet å·²å‘布版本为基线的 API å…¼å®¹æ ¡éªŒï¼ˆPackage Validation),本地å¤çް CI é—¨ç¦ | å¦ï¼ˆCI 观察期) | `publish-beta.yml` |
| `sync-readme-languages.ps1` | 按 `readme-languages.json` 生æˆå„ README çš„è¯è¨€åˆ‡æ¢è¡Œ | 是(`-Check`) | `readme.yml` |
| `sync-readme-metrics.ps1` | 按 `readme-metrics.json` å†™å…¥æŒ‡æ ‡å¾½ç« ä¸Žæ ‡è®°æ•°å— | 是(`-Check`) | `readme.yml` |
| `sync-readme-package.ps1` | ç”± `README.md` ç”Ÿæˆ NuGet 包内 `README.nuget.md`,相对链接改写为ç»å¯¹åœ°å€ | 是(`-Check`) | `readme.yml` |
## é…置与产物
- é…ç½®æè¿°æ ¹ç›®å½•çš„ READMEï¼Œç•™åœ¨ä»“åº“æ ¹ï¼š`readme-languages.json`ã€`readme-metrics.json`ã€`readme-package.json`
- 产物å‡å·²è¢« gitignore:`TestResults/<时间戳>/`(跑测 trx 与日志)ã€`.tmp/api-compat/`ã€`.tmp/package-consumer/`
## 常用命令
```powershell
pwsh -File Tools/Scripts/run-tests.ps1 -List # 列出全部测试宿主
pwsh -File Tools/Scripts/run-tests.ps1 -Only "Core-*" # åªè·‘å称匹é…的宿主
pwsh -File Tools/Scripts/check-locales.ps1 # è¯è¡¨ä¸€è‡´æ€§æ ¡éªŒ
pwsh -File Tools/Scripts/sync-readme-package.ps1 -Check # README åŒ…ç‰ˆæ ¡éªŒ
```
新增ã€é‡å‘½åæˆ–åˆ é™¤è„šæœ¬æ—¶ï¼ŒåŒæ¥æ›´æ–° `.github/workflows/` ä¸çš„引用与 `paths` è¿‡æ»¤ï¼Œä»¥åŠ `Doc/` 下的相关文档。
|