用途:在 GitHub Actions 中配置 .NET 构建与测试流水线,覆盖 SDK 安装、依赖还原缓存、测试结果发布、覆盖率上传、多目标框架矩阵测试与大型项目测试分片。
主要能力:使用 actions/setup-dotnet@v4 安装单个或多个 SDK 版本(首个版本为默认),支持通过 global-json-file 读取 global.json 固定 SDK;通过 source-url 与 NUGET_AUTH_TOKEN 配置私有 NuGet 源认证,也可用 dotnet nuget add source 添加多个源(Linux 需 --store-password-in-clear-text)。缓存方面可用 actions/cache@v4 缓存 ~/.nuget/packages,或使用 setup-dotnet 内置 cache 配合 packages.lock.json(需先执行 dotnet restore --use-lock-file 并提交锁文件)。测试结果可用 dorny/test-reporter@v1 或 EnricoMi/publish-unit-test-result-action@v2 发布 TRX;覆盖率可用 --collect:"XPlat Code Coverage" 生成,上传至 Codecov 或 Coveralls,也可用 ReportGenerator 生成 HTML 报告并作为 artifact 上传。多 TFM 可用矩阵(如 net8.0、net9.0)或单作业安装全部 SDK;大型项目可按测试项目或 --filter 命名空间分片并行。
使用方式:在 workflow 中按需组合上述步骤,测试步骤设 continue-on-error: true,报告步骤设 if: always(),报告器设 fail-on-error: true。
限制与注意:多行 bash 需 set -euo pipefail;缓存键应包含 runner.os;多 TFM 必须安装对应 SDK,否则报 NETSDK1045;不要在 workflow 中硬编码 TFM;TRX 路径需与报告器 glob 匹配;凭据一律用 secrets。起始模板、测试策略、基准测试、发布部署及 Azure DevOps 流水线不在本技能范围内。