feat: Add CI/CD pipeline for automated NuGet publishing with Release Drafter - #9
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR consolidates build configuration and establishes a comprehensive NuGet package publishing and release management infrastructure for the MultiLock project. The changes centralize common build properties, update package metadata, and introduce automated changelog generation using Release Drafter.
Key changes:
- Centralized build configuration in
Directory.Build.propswith common properties for all projects - Updated provider package references from
MultiLock.Net.dlltoMultiLock.dll - Introduced Release Drafter workflow for automated changelog generation
- Added comprehensive NuGet publishing workflow with validation and dry-run support
Reviewed Changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
src/Directory.Build.props |
Centralized build configuration including versioning, package metadata, SourceLink, and deterministic builds |
src/MultiLock/MultiLock.csproj |
Simplified project file by consolidating common properties to Directory.Build.props |
src/Providers/*/MultiLock.*.csproj |
Consolidated provider project files and corrected asset references from MultiLock.Net.dll to MultiLock.dll |
.github/workflows/release-drafter.yml |
New workflow for automated draft release creation and changelog generation |
.github/workflows/publish-nuget.yml |
Comprehensive NuGet publishing workflow with testing, validation, and release creation |
.github/release-drafter.yml |
Configuration for Release Drafter with PR categorization and version resolution |
.github/labels.yml |
Label definitions for PR categorization and changelog generation |
.github/scripts/setup-labels.ps1 |
PowerShell script to automate GitHub label creation |
CHANGELOG.md |
New changelog file with initial structure and guidelines |
docs/RELEASE_DRAFTER_GUIDE.md |
Comprehensive guide for using Release Drafter workflow |
.github/workflows/README.md |
Documentation for GitHub Actions workflows |
.github/PULL_REQUEST_TEMPLATE.md |
PR template with label guidelines |
logo.png |
Project logo for NuGet packages |
.gitignore |
Added .excluded/ directory to gitignore |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…Drafter Implement comprehensive CI/CD infrastructure for automated NuGet package publishing and release management to prepare MultiLock for production deployment. ### NuGet Publishing Workflow - Add automated NuGet publishing workflow with manual and tag-based triggers - Configure package validation using dotnet-validate tool - Implement selective publishing to exclude core MultiLock package (embedded in providers) - Add dry-run mode for testing without actual publication - Include symbol package (.snupkg) publishing for debugging support - Integrate with Release Drafter for automatic changelog updates ### Package Configuration & Standardization - Centralize package metadata in Directory.Build.props - Implement MinVer for semantic versioning from Git tags (v-prefix, 1.0 minimum) - Enable SourceLink for source code debugging support - Configure deterministic builds for reproducibility - Add XML documentation generation for all packages - Standardize package metadata (authors, license, repository, tags) - Optimize package logo to NuGet standards (128x128px, 27.65 KB) ### Release Automation - Add Release Drafter for PR-based automatic changelog generation - Configure 9 changelog categories (Breaking Changes, Features, Bug Fixes, etc.) - Implement auto-labeling based on files, branches, and PR titles - Create comprehensive label definitions (215 labels across all categories) - Add PR template to guide contributors on proper labeling ### Project Structure Improvements - Clean up all .csproj files by removing redundant properties - Standardize provider package configuration across all 8 providers - Update .gitignore to exclude build artifacts and temporary files ### Documentation - Add comprehensive Release Drafter usage guide - Document GitHub Actions workflows and their purposes - Create label setup automation script This implementation provides a production-ready CI/CD pipeline that ensures consistent versioning, automated changelog generation, and reliable package publishing to NuGet.org for all 8 MultiLock provider packages.
steingran
force-pushed
the
5-nuget-publishing
branch
from
November 7, 2025 20:34
0d59b1c to
0b8dad4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement comprehensive CI/CD infrastructure for automated NuGet package publishing and release management to prepare MultiLock for production deployment.
NuGet Publishing Workflow
Package Configuration & Standardization
Release Automation
Project Structure Improvements
Documentation
This implementation provides a production-ready CI/CD pipeline that ensures consistent versioning, automated changelog generation, and reliable package publishing to NuGet.org for all 8 MultiLock provider packages.