Skip to content
Bitzsoft.Integrationsbitzsoft.integrations

Guide

发布到 NuGet

publish-nuget.sh、CI tag 驱动和 release.sh 一键发布流程。

Last updated

发布到 NuGet.org 使用 tag 驱动的 CI 流程。本地执行 gate + pack + tag,CI 执行实际的 NuGet 推送。

发布流程

本地
Gate + Pack + Tag

git push --tags

CI(GitHub Actions)
提取版本 → Pack → Publish

NuGet.org

一键发布

Terminal window
# ① release.sh 执行本地 gate + pack + tag
./scripts/release.sh 1.2.3

release.sh 内部流程:

  1. 运行本地 gate(编译、测试、审计)
  2. 执行 dotnet pack -c Release -o artifacts/
  3. 创建 git tag v1.2.3
  4. 推送 tag 到远程

CI(.github/workflows/publish.yml)在 tag 推送时触发:

  1. 从 tag 名称提取版本号
  2. 执行 dotnet pack
  3. 执行 dotnet nuget push 推送到 NuGet.org
  4. 需要环境变量 NUGET_API_KEY

手动发布(不推荐)

Terminal window
# ① 打包
dotnet pack -c Release -o artifacts/
# ② 推送到 NuGet.org
./scripts/publish-nuget.sh
# 或手动执行
dotnet nuget push artifacts/*.nupkg \
--api-key $NUGET_API_KEY \
--source https://api.nuget.org/v3/index.json

版本管理

场景版本格式示例
稳定版本X.Y.Z1.0.0
预发布版本X.Y.Z-alpha.N1.1.0-alpha.3
版本覆盖-p:Version=X.Y.Z发布时使用

所有包版本锁定在一起——不能单独发布某个包的特定版本。

发布前检查清单

  • 本地编译 0 warning 0 error
  • 全部测试通过
  • scripts/vulnerability-audit.mjs 无漏洞
  • SBOM 已生成
  • Directory.Build.props 版本号已更新
  • 新增包的 README 已完成
  • 新增包已加入解决方案文件夹分类
  • 新增包已在根 README 包索引登记

相关

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%