Skip to main content

publish-release

Publish a merged DogStatsD C# client release. Tags the merged master commit, pushes the tag, builds the NuGet package, and uploads to NuGet.org. Run after the release PR is merged. Triggers on: publish release, push to nuget, tag release, ship release.

소스 정보

저장소
DataDog/dogstatsd-csharp-client
최근 소스 활동
2026년 4월 28일 14:48
감지된 SKILL.md 언어
영어
스타
99
포크
58

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
publish-release
description
Publish a merged DogStatsD C# client release. Tags the merged master commit, pushes the tag, builds the NuGet package, and uploads to NuGet.org. Run after the release PR is merged. Triggers on: publish release, push to nuget, tag release, ship release.
user-invocable
true
# Publish Release Tag the merged release, build the NuGet package, and push to NuGet.org. **Pre-condition:** The release PR must already be merged into master before running this. --- ## Step 1: Confirm Version Read the version from `src/StatsdClient/StatsdClient.csproj` (`<PackageVersion>`). Show it to the user and confirm: "Publish release X.Y.Z?" before proceeding. --- ## Step 2: Switch to Master and Pull ```bash git checkout master git pull origin master ``` Re-read `<PackageVersion>` from `src/StatsdClient/StatsdClient.csproj` and verify it still matches X.Y.Z. If it does not, stop and tell the user to ensure the release PR is merged before running this skill. --- ## Step 3: Tag the Release and Publish GitHub Release Use `gh release create` — creates the tag, pushes it, and publishes a GitHub Release in one step. Extract the X.Y.Z section from `CHANGELOG.md` into a temp file (everything between the `## X.Y.Z` heading and the next `## ` heading), then: ```bash gh release create X.Y.Z --target master --title "X.Y.Z" --notes-file <changelog-section-file> ``` If extraction is awkward, fall back to `--generate-notes` (auto from commits/PRs): ```bash gh release create X.Y.Z --target master --title "X.Y.Z" --generate-notes ``` Verify tag pushed: `git fetch --tags && git tag -l X.Y.Z`. --- ## Step 4: Build NuGet Package ```bash dotnet pack src/StatsdClient/StatsdClient.csproj -c Release -o artifacts/nuget ``` Verify the command exits 0 and that `artifacts/nuget/DogStatsD-CSharp-Client.X.Y.Z.nupkg` exists. --- ## Step 5: Push to NuGet.org **Pause here.** Ask the user: > "Ready to push `DogStatsD-CSharp-Client.X.Y.Z.nupkg` to NuGet.org. Is `NUGET_API_KEY` set? Proceed?" Only run after explicit confirmation. Push the main package: ```bash dotnet nuget push artifacts/nuget/DogStatsD-CSharp-Client.X.Y.Z.nupkg \ --api-key "$NUGET_API_KEY" \ --source https://api.nuget.org/v3/index.json \ --skip-duplicate ``` Push symbols if present: ```bash dotnet nuget push artifacts/nuget/DogStatsD-CSharp-Client.X.Y.Z.snupkg \ --api-key "$NUGET_API_KEY" \ --source https://api.nuget.org/v3/index.json \ --skip-duplicate ``` --- ## Summary Checklist - [ ] On latest master with release commit at HEAD - [ ] Git tag X.Y.Z created and pushed via `gh release create` - [ ] GitHub Release X.Y.Z published with notes - [ ] `dotnet pack` succeeded, .nupkg exists - [ ] .nupkg pushed to NuGet.org - [ ] .snupkg (symbols) pushed to NuGet.org
GitHub에서 보기