Skip to content

ci: add CI + tag-triggered NuGet release pipeline (Trusted Publishing)#13

Merged
adamy merged 1 commit into
mainfrom
feat-ci-release-pipeline
Jun 10, 2026
Merged

ci: add CI + tag-triggered NuGet release pipeline (Trusted Publishing)#13
adamy merged 1 commit into
mainfrom
feat-ci-release-pipeline

Conversation

@adamy

@adamy adamy commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Adds the missing CI and release automation, plus benefit-first NuGet package descriptions.

ci.yml

Push/PR to main: Release build (TreatWarningsAsErrors active) + unit tests. Node 22 installed because the net10.0 AspNetCore build rebuilds the widget via npm. LLM tests auto-skip without BOTWIRE_TEST_API_KEY; Mailpit tests filtered.

release.yml (tag v*)

  1. Guard: tag must equal VersionPrefix in Directory.Build.props
  2. Build → test → pack (CI=true triggers ContinuousIntegrationBuild → deterministic packages)
  3. NuGet Trusted Publishing: OIDC token exchanged for a short-lived API key via NuGet/login@v1 — no stored secret
  4. Push .nupkg/.snupkg to NuGet.org (--skip-duplicate), create GitHub Release with artifacts + generated notes

Requires (already configured on nuget.org): Trusted Publishing policy for adamy/BotWire + release.yml, and repo variable NUGET_USER.

Package descriptions

Rewritten benefit-first for NuGet search; removed inaccurate claims (Core described as "widget"; Email claimed IMAP receive that doesn't exist).

🤖 Generated with Claude Code

…iptions

- ci.yml: Release build (warnings-as-errors) + unit tests on push/PR to main
- release.yml: on v* tag — verify tag matches VersionPrefix, build, test,
  pack, push to NuGet.org via Trusted Publishing (OIDC, no stored API key),
  create GitHub Release with artifacts
- Rewrite NuGet descriptions benefit-first; drop inaccurate claims
  (Core is not the widget; Email channel has no IMAP receive)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@adamy adamy merged commit 42c9683 into main Jun 10, 2026
1 check 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