Skip to content

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45

Merged
chsword merged 4 commits intomainfrom
copilot/design-auto-release-workflow
Oct 11, 2025
Merged

Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow#45
chsword merged 4 commits intomainfrom
copilot/design-auto-release-workflow

Conversation

Copy link
Contributor

Copilot AI commented Oct 11, 2025

Overview

This PR implements a complete automated release system for the Excel2Object project, addressing all three requirements from the issue:

  1. ✅ GitHub Copilot instructions in Chinese
  2. ✅ Build-time version number auto-increment rules
  3. ✅ Automated NuGet and GitHub Release publishing workflow

What's New

📚 Comprehensive Documentation System (8 new files)

Core Documentation

.github/copilot-instructions.md (5.7 KB, Chinese)

  • Complete GitHub Copilot usage guide in Chinese
  • Project overview, coding standards, and development workflow
  • Covers naming conventions, code style, attribute usage, testing requirements
  • Commit message format (Conventional Commits) and PR guidelines
  • Common issues and best practices

.github/VERSIONING.md (6.1 KB, Bilingual)

  • Semantic Versioning 2.0.0 specification
  • Detailed version increment rules with decision matrix
  • Pre-release version conventions (Alpha, Beta, RC)
  • Automated version validation mechanisms

.github/RELEASE_GUIDE.md (12 KB, Bilingual)

  • Step-by-step release process guide
  • Pre-release preparation, execution, and verification
  • Troubleshooting guide and rollback procedures
  • Best practices and timing estimates

.github/workflows/release.yml (8.5 KB, YAML)

  • Fully automated release workflow with 6 jobs
  • Multi-platform build and test (Ubuntu + Windows)
  • Automatic NuGet package publishing
  • GitHub Release creation with extracted release notes
  • Comprehensive security mechanisms

RELEASE_AUTOMATION.md (6.6 KB, Bilingual)

  • System overview and documentation index
  • Quick start guide with visual flow diagram
  • Version increment rules and decision matrix
  • Configuration requirements

Supporting Documentation

.github/QUICK_REFERENCE.md (3.2 KB, Bilingual)

  • Quick reference card for daily use
  • Version increment lookup table
  • Common issues and quick solutions

.github/RELEASE_CHECKLIST.md (4.6 KB, Bilingual)

  • Comprehensive release checklist
  • Pre-release, during-release, and post-release verification
  • Printable format for tracking

.github/DELIVERY_SUMMARY.md (11.8 KB, Bilingual)

  • Complete project delivery summary
  • Detailed explanation of all three requirements
  • Statistics and usage guidelines

🎯 Version Number Auto-Increment Rules

Format: MAJOR.MINOR.PATCH (follows Semantic Versioning 2.0.0)

Increment Rules:

  • 🐛 Bug fixes → Patch +1 (2.0.2 → 2.0.3)
  • ⚡ Performance improvements → Patch +1 (2.0.3 → 2.0.4)
  • ✨ New features → Minor +1 (2.0.4 → 2.1.0)
  • 🎯 New framework support → Minor +1 (2.1.0 → 2.2.0)
  • 💥 Breaking changes → Major +1 (2.2.0 → 3.0.0)

Pre-release Versions:

  • Alpha: X.Y.Z-alpha.N
  • Beta: X.Y.Z-beta.N
  • RC: X.Y.Z-rc.N

Automated Validation:

  • SemVer format validation
  • Tag and csproj version consistency check
  • Prevents duplicate version publishing

🚀 Automated Release Workflow

Trigger: Push a tag matching v* pattern

git tag v2.0.3
git push origin v2.0.3

Workflow (5-10 minutes):

  1. validate-version (< 1 min) - Version format and consistency validation
  2. build-and-test (2-5 min) - Multi-platform build (Ubuntu + Windows) and all unit tests
  3. pack-nuget (< 1 min) - Build Release configuration and pack for 6 frameworks
  4. publish-nuget (1-2 min) - Publish to NuGet.org with API key
  5. create-release (< 1 min) - Create GitHub Release with extracted release notes
  6. notify-success - Display success message with links

Security Features:

  • GitHub Secrets protection for API keys
  • Optional Environment approval workflow
  • Multi-stage version validation
  • Quality gates (tests must pass)

Configuration Required

GitHub Secret (Required):

  • NUGET_API_KEY - NuGet.org API key for publishing

GitHub Environment (Optional):

  • nuget-production - For approval workflow and access control

Documentation Structure

.github/
├── copilot-instructions.md      # Copilot guide (Chinese)
├── VERSIONING.md                # Version management rules
├── RELEASE_GUIDE.md             # Complete release guide
├── QUICK_REFERENCE.md           # Quick reference card
├── RELEASE_CHECKLIST.md         # Release checklist
├── DELIVERY_SUMMARY.md          # Project delivery summary
└── workflows/
    └── release.yml              # Automated release workflow

RELEASE_AUTOMATION.md            # System overview

Benefits

  • Efficiency: Automated process saves time, 5-10 minutes per release
  • Quality: Multi-stage validation ensures release quality
  • Consistency: Standardized process reduces human error
  • Knowledge: Comprehensive documentation for team collaboration
  • Maintainability: Clear guidelines and processes

Usage Example

To release version 2.0.3:

# 1. Update version in Chsword.Excel2Object.csproj
# 2. Update release notes in README.md and README_EN.md
# 3. Commit changes
git add .
git commit -m "chore: bump version to 2.0.3"
git push origin main

# 4. Create and push tag
git tag v2.0.3
git push origin v2.0.3

# 5. Monitor GitHub Actions (automatic)

Testing

The workflow YAML has been validated for syntax correctness. The release workflow will be triggered automatically when a tag is pushed to the repository.

Statistics

  • New files: 8 (7 documents + 1 workflow)
  • Updated files: 2 (README.md, README_EN.md)
  • Total lines: ~2,436 lines of code and documentation
  • Code examples: 40+
  • Languages: Chinese and English

All three requirements have been fully implemented and are ready for production use! 🚀

Original prompt
  1. 请写入一个 copilot 的说明 ,要求使用中文描述需求
  2. 帮我设计编译时版本号的自增规则 ,请注意当前的Nuget及 Realse版本
  3. 帮我设计一个自动发布 Nuget / GitHub Release 的流程

💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.

Copilot AI and others added 3 commits October 11, 2025 12:19
…rsioning guidelines, and auto-release workflow

Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Co-authored-by: chsword <274085+chsword@users.noreply.github.com>
Copilot AI changed the title [WIP] Design automated NuGet and GitHub Release process Add comprehensive release automation system with Copilot instructions, versioning guidelines, and auto-release workflow Oct 11, 2025
Copilot AI requested a review from chsword October 11, 2025 12:29
@chsword chsword marked this pull request as ready for review October 11, 2025 13:16
Copilot AI review requested due to automatic review settings October 11, 2025 13:16
@chsword chsword merged commit 5e01a63 into main Oct 11, 2025
9 of 10 checks passed
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements a comprehensive automated release system for the Excel2Object project, addressing all three requirements from the original issue: GitHub Copilot instructions in Chinese, version management rules, and automated NuGet/GitHub Release workflow.

Key Changes:

  • Complete documentation system with 8 new files covering all aspects of development and release
  • Fully automated release workflow with GitHub Actions supporting multi-platform builds and quality gates
  • Comprehensive version management based on Semantic Versioning 2.0.0 with clear increment rules

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
RELEASE_AUTOMATION.md System overview and documentation index providing comprehensive project delivery summary
README_EN.md Added "Development and Release" section with links to new documentation
README.md Added "开发和发布" section with links to new documentation
.github/workflows/release.yml Complete automated release workflow with 6 jobs for validation, testing, packaging, and publishing
.github/copilot-instructions.md Comprehensive GitHub Copilot usage guide in Chinese covering project conventions and best practices
.github/VERSIONING.md Bilingual semantic versioning specification with detailed increment rules and decision matrix
.github/RELEASE_GUIDE.md Detailed bilingual release process guide with step-by-step instructions and troubleshooting
.github/RELEASE_CHECKLIST.md Comprehensive bilingual release checklist for tracking all release steps
.github/QUICK_REFERENCE.md Bilingual quick reference card for daily development and release operations
.github/DELIVERY_SUMMARY.md Complete project delivery summary documenting all requirements and implementations

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.

2 participants

Comments