用途:统一处理 .NET 项目在 GitHub Actions 中的发布环节,包括 NuGet 包推送、容器镜像构建与推送、产物签名、SBOM 生成,以及按标签或 Release 触发的条件发布。
主要能力:NuGet 推送支持 nuget.org 与 GitHub Packages,可用 --skip-duplicate 保证重试幂等,并可按版本是否含“-”区分预发布与稳定版分别推送;容器发布支持基于 Dockerfile 的 docker/build-push-action 构建,也支持无需 Dockerfile 的 SDK 容器发布(dotnet publish 加 PublishProfile=DefaultContainer),可推送至 GHCR、DockerHub、ACR,并展示 Native AOT 容器发布步骤;签名支持 dotnet nuget sign 对 NuGet 包签名,以及 sigstore/cosign 无密钥签名容器镜像;SBOM 使用 Microsoft SBOM 工具及 anchore/sbom-action 生成,并可附加到 GitHub Release。
使用方式:按资料中的工作流示例配置触发条件(标签或 release published),使用 actions/setup-dotnet@v4、docker/build-push-action@v6、docker/login-action@v3、docker/metadata-action@v5 等版本,凭证通过 secrets 注入。
限制与注意:容器镜像编写(Dockerfile、基础镜像)属 dotnet-containers 技能,Native AOT MSBuild 配置属 dotnet-native-aot,CLI 发布流水线属 dotnet-cli-release-pipeline,初始 CI 模板属 dotnet-add-ci,Azure DevOps 发布与目标环境部署不在本技能范围。SDK 容器发布需要运行器上有 Docker;AOT 发布需匹配 RID;务必在管道中使用 pipefail 并在失败时也清理签名证书。