Publishing
All publishing is automated via GitHub Actions. Each workflow triggers on a specific tag or event.
Library (NuGet + MCP Server)
Pushing a v* tag triggers both publish-nuget.yml and publish-mcp.yml. These workflows build, test, pack, and push packages to GitHub Packages.
git tag v1.0.0
git push origin v1.0.0
This publishes:
- Core library —
ZampaStudio.CleanFramework.CoreNuGet package - MCP server —
ZampaStudio.CleanFramework.McpServer.NET tool package
Both workflows use the built-in GITHUB_TOKEN — no additional secrets are needed.
Installing the published packages
Add the GitHub Packages source and install:
dotnet nuget add source "https://nuget.pkg.github.com/ZampaStudio/index.json" \
--name github-zampastudio \
--username YOUR_GITHUB_USERNAME \
--password YOUR_GITHUB_PAT
dotnet add package ZampaStudio.CleanFramework.Core
Installing the MCP server
dotnet tool install --global ZampaStudio.CleanFramework.McpServer \
--add-source "https://nuget.pkg.github.com/ZampaStudio/index.json"
Documentation
Creating a GitHub release triggers publish-pages.yml, which builds the Jekyll site and deploys it to Cloudflare Pages. You can also trigger it manually from the Actions tab via workflow_dispatch.
Prerequisites
The following repository secrets must be configured under Settings > Secrets and variables > Actions:
| Secret | Purpose |
|---|---|
CLOUDFLARE_API_TOKEN |
Cloudflare API token with Cloudflare Pages: Edit permission |
CLOUDFLARE_ACCOUNT_ID |
Your Cloudflare account ID |
Solution Template
Pushing a template-v* tag triggers publish-template.yml, which packs and publishes the solution template to GitHub Packages.
git tag template-v1.0.0
git push origin template-v1.0.0
After publishing, users can create a new project from the template:
dotnet new install ZampaStudio.CleanFramework.Template \
--add-source "https://nuget.pkg.github.com/ZampaStudio/index.json"
dotnet new cleanframework -n MyLibrary