Skip to content

ci: add NuGet pack & publish workflow#6

Merged
ThatRendle merged 2 commits into
mainfrom
ci/nuget-release
May 28, 2026
Merged

ci: add NuGet pack & publish workflow#6
ThatRendle merged 2 commits into
mainfrom
ci/nuget-release

Conversation

@ThatRendle
Copy link
Copy Markdown
Contributor

@ThatRendle ThatRendle commented May 28, 2026

Summary

Adds .github/workflows/release.yml to pack and publish the dcli and dcli.testing NuGet packages. The packaging metadata already lives in the two csprojs (SourceLink, symbols, READMEs, IsPackable); this wires up the release automation.

How it works

Triggers

  • Push a version taggit tag v0.2.0-rc.3 && git push origin v0.2.0-rc.3. The version is taken from the tag (leading v stripped).
  • Manual dispatch — Actions → Release → Run workflow, with an optional version override and a dry-run toggle (pack without publishing).

Pipeline

  1. Restore → Release build → full test run (publish is gated on green tests).
  2. dotnet pack both library projects with the resolved version.
  3. Upload the .nupkg + .snupkg as a workflow artifact.
  4. dotnet nuget push to nuget.org with --skip-duplicate (symbol packages uploaded automatically).

The version override flows through the dcli.testingdcli ProjectReference, so both packages always publish in lockstep at the same version.

Auth

Uses the organization-level NUGET_API_KEY secret in the daemonicai org settings — available to this repo's workflows directly, so no per-repo secret or environment is needed. Just ensure this repo is in the org secret's access list.

Verification (local)

  • Packed both projects with a version override → dcli.*.nupkg/.snupkg and dcli.testing.*.nupkg/.snupkg produced.
  • Confirmed dcli.testing's nuspec depends on dcli at the overridden version, and both READMEs are embedded.
  • Workflow YAML parses clean.

Note: per the core-architecture change, nuget.org publication was held pending cross-platform smoke testing — merge/run this when you're ready to actually ship.

🤖 Generated with Claude Code

ThatRendle and others added 2 commits May 28, 2026 20:24
Add .github/workflows/release.yml to pack and publish the `dcli` and
`dcli.testing` packages.

- Triggers on `v*` version tags (version derived from the tag) or manual
  dispatch (optional version override + dry-run pack-only mode).
- Gates publish on a Release build + full test run.
- Packs both library projects, uploads the .nupkg/.snupkg as a workflow
  artifact, and pushes to nuget.org with --skip-duplicate.
- Version override propagates to dcli.testing's dependency on dcli, so both
  packages always ship in lockstep.

Requires a NUGET_API_KEY secret (repo- or `nuget`-environment-scoped).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The NUGET_API_KEY secret is configured at the daemonicai org level and is
available to this repo's workflows directly, so the per-job `environment:
nuget` reference is unnecessary. Remove it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ThatRendle ThatRendle merged commit 7a1853a into main May 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant