dotnet-releaser 使用指南
1. 项目介绍
dotnet-releaser
是一个全自动化的命令行工具,旨在简化 .NET 库和应用程序的发布流程。它能够自动完成构建、测试、代码覆盖率分析、跨平台编译、打包和发布到 NuGet 和 GitHub 等任务。通过 dotnet-releaser
,开发者可以轻松地将 .NET 项目发布到多个平台,并生成详细的发布说明和包管理文件。
2. 项目快速启动
安装 dotnet-releaser
首先,你需要安装 dotnet-releaser
作为全局 .NET 工具:
dotnet tool install --global dotnet-releaser
初始化配置文件
进入你的项目目录(包含 .sln
或 .csproj
文件),运行以下命令生成配置文件:
dotnet releaser new
这将在项目根目录下生成一个 dotnet-releaser.toml
配置文件。
本地构建和发布
如果你想在本地进行完整的构建和发布,可以使用以下命令:
dotnet-releaser build --force dotnet-releaser.toml
集成到 GitHub Actions
将 dotnet-releaser
集成到 GitHub Actions 中,只需在你的工作流文件中添加以下步骤:
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install .NET 7.0
uses: actions/setup-dotnet@v3
with:
dotnet-version: '7.0.x'
- name: Build, Tests, Cover, Pack and Publish (on push tag)
shell: bash
run: |
dotnet tool install --global dotnet-releaser
dotnet-releaser run --nuget-token "${{ secrets.NUGET_TOKEN }}" --github-token "${{ secrets.GITHUB_TOKEN }}" src/dotnet-releaser.toml
3. 应用案例和最佳实践
应用案例
dotnet-releaser
已经被用于多个开源项目中,例如:
- grpc-curl: 一个包含多个可执行文件的应用程序。
- lunet: 一个发布到 NuGet 的 .NET 全局工具。
- Markdig, Scriban, Tomlyn, Zio: 常规的 .NET 库。
最佳实践
- 配置文件优化: 根据项目需求,调整
dotnet-releaser.toml
文件中的配置,以确保构建和发布过程符合预期。 - 自动化测试: 确保在发布前运行所有测试,并启用代码覆盖率分析,以提高代码质量。
- 版本管理: 使用 Git 标签管理版本,确保每次发布都有明确的版本号和发布说明。
4. 典型生态项目
dotnet-releaser
依赖于多个优秀的开源库,这些库共同构成了其强大的功能:
- dotnet-packaging: 用于在 MSBuild 中集成包创建。
- CommandLineUtils: 处理命令行参数解析。
- Microsoft.Extensions.Logging: 提供日志记录功能。
- MsBuildPipeLogger: 与 MSBuild 结构化输出交互。
- Octokit.NET: 与 GitHub API 交互。
- Tomlyn: 解析 TOML 配置文件。
- CliWrap: 轻松包装和启动可执行文件。
- Spectre.Console: 生成漂亮的日志和表格报告。
- Scriban: 用于文本模板化,如生成发布说明。
- DotNet.Glob: 用于文件过滤。
通过这些库的支持,dotnet-releaser
能够提供全面的自动化发布解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考