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 libraryZampaStudio.CleanFramework.Core NuGet package
  • MCP serverZampaStudio.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

This site uses Just the Docs, a documentation theme for Jekyll.