Commit f09bf0c
authored
Feature/ci cd modernization (#47)
* feat: modernize CI/CD pipeline infrastructure
✨ Phase 1: Infrastructure Modernization Complete
## 🚀 New Features
- **Modern CI/CD Pipeline**: Consolidated 3 separate OS workflows into unified matrix-based ci.yml
- **Automated GitHub Packages**: Daily development builds for immediate testing feedback
- **Enhanced Security**: CodeQL analysis + Dependabot automation
- **GitHub Test Reporter**: Native test result visualization (replaces Testspace)
## 🔄 Workflow Changes
- ✅ **ci.yml**: Cross-platform matrix testing (Windows/Linux/macOS) with modern actions
- ✅ **publish-dev-github.yml**: Automated GitHub Packages publishing for development
- ✅ **publish-nuget.yml**: Enhanced manual workflow supporting both GitHub Packages & NuGet.org
- ✅ **security.yml**: CodeQL security scanning + dependency review
- ✅ **dependabot.yml**: Automated dependency management with smart grouping
## 🏗️ Infrastructure Updates
- **GitHub Actions**: Updated to v4 (checkout, setup-dotnet, cache, upload-artifact)
- **Runners**: Migrated from ubuntu-20.04 to ubuntu-latest
- **Test Reporting**: Native GitHub integration via dorny/test-reporter@v1
- **Package Caching**: Optimized NuGet package caching for faster builds
- **Build System**: Added GitHub Packages support to Cake Frosting build
## 🗑️ Removed Deprecated Components
- ❌ **Old Workflows**: build-ubuntu.yml, build-windows.yml, build-macos.yml
- ❌ **Testspace**: External test reporting service dependency
- ❌ **Old Actions**: checkout@v2, setup-dotnet@v1, [email protected]
## 📦 Release Strategy
- **Development**: Auto-publish to GitHub Packages on every master/v2-preview1 commit
- **Preview/Stable**: Manual NuGet.org publishing with enhanced dropdown workflow
- **Version Format**: 2.0.0-preview1.20240715.a1b2c3d for development builds
Ready for Phase 2: Enhanced automation & community features! 🎯
* docs: update README with modernized CI/CD information
✨ Enhanced Documentation
## 📖 Updated Content
- **CI/CD Badges**: Modern GitHub Actions workflow status badges
- **Package Installation**: Dual-source strategy (NuGet.org + GitHub Packages)
- **Development Builds**: Instructions for GitHub Packages authentication
- **CI Status**: Matrix testing status across Windows/Linux/macOS
## 🔄 Badge Updates
- ✅ **CI/CD Pipeline**: Cross-platform matrix testing status
- ✅ **Security Analysis**: CodeQL scanning and dependency review
- ✅ **Automated Publishing**: GitHub Packages development builds
- ❌ **Removed**: Deprecated Testspace badge
Ready for community testing with development packages! 🚀
* refactor: improve CI/CD trigger strategy following best practices
🔧 **Workflow Trigger Improvements**
## ✅ **Removed Hard-coded Feature Branches**
- **CI Pipeline**: Only master branch + PRs (no temporary feature branches)
- **Auto Publishing**: Only master branch (stable development builds)
- **Manual Publishing**: Available from any branch when needed
## 🎯 **Benefits**
- **Maintainable**: No need to update workflows for every feature branch
- **Scalable**: Works for any future feature branches automatically
- **Clean**: CI only runs at integration points (master + PRs)
- **Efficient**: Eliminates duplicate workflow runs
## 🚀 **Result**
- ✅ Follows GitHub Actions best practices
- ✅ Reduced maintenance overhead
- ✅ Clean separation of concerns
- ✅ Ready for production use
CI/CD modernization is now production-ready! 🎉
* feat: leverage built-in Mono runtime for cross-platform .NET Framework support
🎯 **Mono Runtime Modernization**
## 📰 **Context**: Microsoft Mono Project Transition
- Original Mono Project → Moving to WineHQ stewardship
- Microsoft's modern Mono fork → Integrated into dotnet/runtime
- .NET 8+ includes built-in Mono runtime for cross-platform .NET Framework support
## ✅ **Cross-Platform .NET Framework Support**
- **Linux**: Now runs net472 tests using built-in Mono runtime
- **macOS**: Unified test execution (no more custom XUnit/Mono logic)
- **Windows**: Unchanged (native .NET Framework support)
## 🔧 **Build System Improvements**
- **Simplified Logic**: Removed platform-specific workarounds
- **Unified Execution**: Same \`dotnet test\` command across all platforms
- **Dependency Elimination**: No external Mono installation required
- **Better Coverage**: Full framework testing on all platforms
## 🚀 **CI/CD Enhancements**
- **Matrix Testing**: Added net472 to Linux/macOS matrix
- **Trigger Fix**: Added feature/* pattern for testing
- **Modern Runtime**: Leverages .NET 9.0.200 built-in Mono
## 📈 **Result**
- ✅ True cross-platform .NET Framework support
- ✅ Simplified, maintainable build system
- ✅ Zero external runtime dependencies
- ✅ Enhanced test coverage across all platforms
* feat: add Mono installation support for .NET Framework testing on Linux
* feat: add NUGET_PACKAGES environment variable to CI/CD workflows
refactor: remove redundant NuGet package installation in InitTask
* feat: update CI/CD workflows to use Ubuntu 22.04 and remove deprecated security analysis workflow
* feat: update NUGET_PACKAGES path for cross-platform compatibility and add security analysis workflow
* feat: update test execution condition for Linux and change dependency review runner to Ubuntu 22.04
* feat: remove security analysis workflow from CI/CD pipeline
* feat: add dependency review workflow for pull requests1 parent c1522fb commit f09bf0c
File tree
13 files changed
+571
-242
lines changed- .github/workflows
- build/LocalStack.Build
- src
- LocalStack.Client.Extensions
- LocalStack.Client
13 files changed
+571
-242
lines changedThis file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
0 commit comments