[PR #106] [MERGED] Add CI/CD workflows and modernize project infrastructure #111

Closed
opened 2026-02-26 17:44:28 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/Corsinvest/cv4pve-autosnap/pull/106
Author: @franklupo
Created: 12/10/2025
Status: Merged
Merged: 12/10/2025
Merged by: @franklupo

Base: masterHead: feature/ci-cd-workflows


📝 Commits (1)

  • 6afb7f4 Add CI/CD workflows and modernize project infrastructure

📊 Changes

28 files changed (+2758 additions, -2082 deletions)

View changed files

.github/workflows/build.yml (+40 -0)
.github/workflows/publish.yml (+127 -0)
.github/workflows/quality.yml (+66 -0)
📝 .vscode/launch.json (+1 -1)
Directory.Build.props (+11 -0)
Directory.Packages.props (+11 -0)
Initialize-Tools.ps1 (+0 -4)
📝 README.md (+1076 -1182)
deploy/winget/Corsinvest.cv4pve.autosnap.installer.yaml (+32 -0)
deploy/winget/Corsinvest.cv4pve.autosnap.locale.en-US.yaml (+44 -0)
deploy/winget/Corsinvest.cv4pve.autosnap.yaml (+18 -0)
deploy/winget/README.md (+115 -0)
hooks/hook-template.bat (+58 -0)
hooks/hook-template.ps1 (+79 -0)
hooks/hook-template.sh (+82 -0)
hooks/send-metrics.sh (+268 -0)
script-hook.bat (+0 -45)
script-hook.sh (+0 -46)
📝 src/Corsinvest.ProxmoxVE.AutoSnap.Api/Application.cs (+433 -432)
📝 src/Corsinvest.ProxmoxVE.AutoSnap.Api/Corsinvest.ProxmoxVE.AutoSnap.Api.csproj (+32 -42)

...and 8 more files

📄 Description

Summary

This PR modernizes the project infrastructure and adds comprehensive CI/CD automation.

Changes

CI/CD Workflows

  • Build workflow: Multi-platform testing on Ubuntu, Windows, and macOS
  • Quality workflow: CodeQL security analysis and code quality checks
  • Publish workflow: Automatic releases with multi-platform builds
  • Platform support: Windows (x64/x86/arm64), Linux (x64/arm/arm64), macOS (x64/arm64)
  • Package automation: Automatic NuGet and WinGet publishing

Project Modernization

  • Upgrade to .NET 10 with multi-targeting support (net8.0, net9.0, net10.0)
  • Central Package Management (CPM): Consistent dependency versions across projects
  • Directory.Build.props: Shared project properties and metadata
  • Directory.Packages.props: Centralized package version management
  • Code refactoring: Improved maintainability and code quality
  • README updates: Comprehensive documentation with examples

WinGet Integration

  • Manifest templates: Ready for first WinGet publication
  • Submission guide: Step-by-step instructions for WinGet setup
  • Automatic updates: WinGet Releaser configured for future releases

Hook System

  • Cross-platform templates: Bash, PowerShell, and Batch script templates
  • Practical examples: send-metrics.sh example included
  • Cleanup: Removed deprecated script files

Breaking Changes

  • Minimum .NET version is now 8.0

Testing

  • Build workflow will run on this PR
  • Quality workflow will run security analysis
  • Review workflow results before merging

Post-Merge Actions

  1. Setup NUGET_API_KEY secret for NuGet publishing
  2. Setup WINGET_TOKEN secret for WinGet automation
  3. Fork microsoft/winget-pkgs under Corsinvest organization
  4. Create first release tag to test publish workflow

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Corsinvest/cv4pve-autosnap/pull/106 **Author:** [@franklupo](https://github.com/franklupo) **Created:** 12/10/2025 **Status:** ✅ Merged **Merged:** 12/10/2025 **Merged by:** [@franklupo](https://github.com/franklupo) **Base:** `master` ← **Head:** `feature/ci-cd-workflows` --- ### 📝 Commits (1) - [`6afb7f4`](https://github.com/Corsinvest/cv4pve-autosnap/commit/6afb7f4cca36ba1056311f4577cfff5a772aaa1e) Add CI/CD workflows and modernize project infrastructure ### 📊 Changes **28 files changed** (+2758 additions, -2082 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/build.yml` (+40 -0) ➕ `.github/workflows/publish.yml` (+127 -0) ➕ `.github/workflows/quality.yml` (+66 -0) 📝 `.vscode/launch.json` (+1 -1) ➕ `Directory.Build.props` (+11 -0) ➕ `Directory.Packages.props` (+11 -0) ➖ `Initialize-Tools.ps1` (+0 -4) 📝 `README.md` (+1076 -1182) ➕ `deploy/winget/Corsinvest.cv4pve.autosnap.installer.yaml` (+32 -0) ➕ `deploy/winget/Corsinvest.cv4pve.autosnap.locale.en-US.yaml` (+44 -0) ➕ `deploy/winget/Corsinvest.cv4pve.autosnap.yaml` (+18 -0) ➕ `deploy/winget/README.md` (+115 -0) ➕ `hooks/hook-template.bat` (+58 -0) ➕ `hooks/hook-template.ps1` (+79 -0) ➕ `hooks/hook-template.sh` (+82 -0) ➕ `hooks/send-metrics.sh` (+268 -0) ➖ `script-hook.bat` (+0 -45) ➖ `script-hook.sh` (+0 -46) 📝 `src/Corsinvest.ProxmoxVE.AutoSnap.Api/Application.cs` (+433 -432) 📝 `src/Corsinvest.ProxmoxVE.AutoSnap.Api/Corsinvest.ProxmoxVE.AutoSnap.Api.csproj` (+32 -42) _...and 8 more files_ </details> ### 📄 Description ## Summary This PR modernizes the project infrastructure and adds comprehensive CI/CD automation. ## Changes ### CI/CD Workflows - ✅ **Build workflow**: Multi-platform testing on Ubuntu, Windows, and macOS - ✅ **Quality workflow**: CodeQL security analysis and code quality checks - ✅ **Publish workflow**: Automatic releases with multi-platform builds - ✅ **Platform support**: Windows (x64/x86/arm64), Linux (x64/arm/arm64), macOS (x64/arm64) - ✅ **Package automation**: Automatic NuGet and WinGet publishing ### Project Modernization - ✅ **Upgrade to .NET 10** with multi-targeting support (net8.0, net9.0, net10.0) - ✅ **Central Package Management (CPM)**: Consistent dependency versions across projects - ✅ **Directory.Build.props**: Shared project properties and metadata - ✅ **Directory.Packages.props**: Centralized package version management - ✅ **Code refactoring**: Improved maintainability and code quality - ✅ **README updates**: Comprehensive documentation with examples ### WinGet Integration - ✅ **Manifest templates**: Ready for first WinGet publication - ✅ **Submission guide**: Step-by-step instructions for WinGet setup - ✅ **Automatic updates**: WinGet Releaser configured for future releases ### Hook System - ✅ **Cross-platform templates**: Bash, PowerShell, and Batch script templates - ✅ **Practical examples**: send-metrics.sh example included - ✅ **Cleanup**: Removed deprecated script files ## Breaking Changes - Minimum .NET version is now 8.0 ## Testing - [ ] Build workflow will run on this PR - [ ] Quality workflow will run security analysis - [ ] Review workflow results before merging ## Post-Merge Actions 1. Setup `NUGET_API_KEY` secret for NuGet publishing 2. Setup `WINGET_TOKEN` secret for WinGet automation 3. Fork microsoft/winget-pkgs under Corsinvest organization 4. Create first release tag to test publish workflow --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 17:44:28 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cv4pve-autosnap#111
No description provided.