55 lines
2.4 KiB
Markdown
55 lines
2.4 KiB
Markdown
# 开发与 NUKE 构建
|
||
|
||
## 工具链
|
||
|
||
安装 `global.json` 指定的 .NET 10 SDK,SDK 补丁选择遵循 `latestPatch`。包版本集中放在 `Directory.Packages.props`,每个项目的 `packages.lock.json` 记录依赖解析结果。
|
||
|
||
`src/WorkspaceAccessHost.csproj` 声明完整 RID 集合,使各平台发布共享稳定的依赖锁。产品代码直接按职责组织在 `src/` 下。解决方案包含产品、测试和 NUKE 三个项目。构建入口关闭 NUKE 遥测,编译和发布使用独立构建进程。
|
||
|
||
Windows 使用 `./build.ps1`,Linux 使用 `bash ./build.sh`。两者都运行 `build/Build.csproj` 中的 NUKE 程序。也可直接执行:
|
||
|
||
```text
|
||
dotnet run --project build/Build.csproj --configuration Release -- --target Verify
|
||
```
|
||
|
||
## 构建目标
|
||
|
||
| 目标 | 行为 |
|
||
| --- | --- |
|
||
| Restore | 恢复解决方案依赖;`--locked-restore` 启用锁定模式 |
|
||
| Compile | Restore 后构建整个解决方案 |
|
||
| Test | Compile 后执行核心测试并输出 TRX |
|
||
| CheckDocs | 检查标题、相对链接文件、README 可达性及差异说明覆盖 |
|
||
| Verify | CheckDocs 与 Test;默认目标 |
|
||
| Publish | Verify 后按 `--runtime` 发布单一产品和部署模板 |
|
||
| RunHost | Compile 后以 `host` 角色前台运行产品 |
|
||
| RunAgent | Compile 后以 `agent` 角色在当前用户身份下运行产品 |
|
||
|
||
配置参数为 `--configuration Debug` 或 `Release`。发布 RID 为 `win-x64`、`win-arm64`、`linux-x64`、`linux-arm64`。
|
||
|
||
```powershell
|
||
./build.ps1 --target Verify --locked-restore
|
||
./build.ps1 --target Publish --runtime win-x64
|
||
./build.ps1 --target Publish --runtime linux-x64
|
||
```
|
||
|
||
## 开发检查
|
||
|
||
1. 修改实现及对应设计文档。
|
||
2. 为身份边界、并发控制和资源生命周期增加测试。
|
||
3. 执行 Verify,检查 `artifacts/test-results/`。
|
||
4. 涉及原生行为时,在目标系统执行[平台验收](testing.md)。
|
||
|
||
依赖升级时先修改集中版本,再执行 Restore,检查锁文件变化并执行 Verify。CI 先以锁定模式恢复构建程序,再通过 NUKE 验证和发布。
|
||
|
||
## 本地运行
|
||
|
||
Host 默认地址为 `http://127.0.0.1:5080`,命令行 `--urls` 或环境变量 `ASPNETCORE_URLS` 可覆盖地址。直接运行示例:
|
||
|
||
```text
|
||
dotnet run --project src -- host --urls http://127.0.0.1:5081
|
||
dotnet run --project src -- agent
|
||
```
|
||
|
||
健康检查分别为 `/health/live` 和 `/health/ready`。当前行为见[交付状态](implementation-status.md)。
|