Skip to content

Automated NuGet Packaging and Release Workflow for Agent Protocol .NET SDK #120

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

jeff-nasseri
Copy link

@jeff-nasseri jeff-nasseri commented Apr 2, 2025

Related Issue

Fixes #123 - Introducing .NET SDK integration

Overview

This pull request introduces a comprehensive continuous integration and delivery pipeline for the Agent Protocol .NET SDK. The implementation focuses on automating the build, versioning, packaging, and publishing process to ensure consistent and reliable releases of the SDK as NuGet packages.

Key Components

1. Semantic Versioning with GitVersion

  • GitVersion.yml configuration for standardized version calculation
  • Support for different versioning schemes based on branch type
  • Version control through commit message conventions (+semver: major/minor/patch)
  • Automatic version increments based on Git history

2. GitHub Actions Workflows

  • Main workflow for build, test, and package generation
  • Conditional publishing to GitHub Packages for all builds
  • Conditional publishing to NuGet.org for official releases
  • Automated Git tagging and GitHub Release creation
  • Dedicated release workflow for manual version bumps

3. NuGet Package Configuration

  • Centralized package metadata in Directory.Build.props
  • Source link integration for debugging support
  • Symbol package generation (.snupkg)
  • README and license file inclusion
  • Standardized package icon and tags

4. Documentation

  • Comprehensive CI/CD documentation in CI-CD-DOCUMENTATION.md
  • Explanation of versioning strategy and branch patterns
  • Instructions for creating releases and handling version increments
  • Required secrets configuration for GitHub and NuGet publishing

Implementation Details

The pipeline is implemented using industry best practices for .NET library publishing. It supports development builds published to GitHub Packages and production releases to both GitHub Packages and NuGet.org. The versioning system automatically calculates the appropriate version based on Git history and branch patterns, with support for manual overrides through commit messages.

…NuGet packages

This commit establishes a comprehensive CI/CD infrastructure for building, versioning, and publishing the Agent Protocol .NET SDK as NuGet packages. The implementation includes GitHub Actions workflows configured to automatically handle the entire release process from versioning to package deployment.

Complete documentation has been added in CI-CD-DOCUMENTATION.md, covering the versioning strategy, workflow triggers, release process, and required secrets configuration. This automation ensures consistent, reliable package delivery while maintaining proper semantic versioning practices across all SDK releases.
@jeff-nasseri
Copy link
Author

This is a follow up from PR-119, the goal here is to automate the process of the nuget publish and release based on the AssemblyVer

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.

Introducing .NET SDK integration
1 participant