This document summarizes the CI/CD workflows implemented for the TABFRET project.
A comprehensive continuous integration workflow that:
-
Triggers on:
- Push to
mainormasterbranches - Pull requests to
mainormasterbranches - Manual workflow dispatch
- Push to
-
Build Process:
- Runs on Windows (windows-latest) - required for WPF applications
- Uses .NET 6.0 SDK
- Restores all NuGet dependencies
- Builds the entire solution in Release configuration
- Runs all unit tests
- Publishes the application with all dependencies
-
Artifacts:
-
Build Artifacts (all commits):
- Name:
TABFRET-build-{commit-sha} - Retention: 30 days
- Contains the full published application
- Name:
-
Release Package (main/master only):
- Name:
TABFRET-Release-{commit-sha} - Retention: 90 days
- ZIP file ready for distribution
- Name:
-
An automated release workflow that:
-
Triggers on:
- Version tags (e.g.,
v1.0.0,v2.1.3) - Manual workflow dispatch
- Version tags (e.g.,
-
Release Process:
- Builds and tests the application
- Creates a ZIP package named
TABFRET-{version}.zip - Automatically creates a GitHub Release with:
- The version tag as the release name
- The ZIP artifact attached as a downloadable asset
- Auto-generated release notes from commits
-
Workflow Documentation (
.github/workflows/README.md):- Detailed explanation of each workflow
- Instructions for downloading artifacts
- Guide for creating releases
- Local testing instructions
-
Main README Updates:
- Added CI/CD status badges
- Updated .NET version requirements
- Added CI/CD documentation links
- Improved build from source instructions
.github/workflows/dotnet.yml(duplicate of ci.yml)
.github/workflows/ci.yml- Complete rewrite with enhanced featuresREADME.md- Added badges and CI/CD documentation
.github/workflows/release.yml- New automated release workflow.github/workflows/README.md- Comprehensive CI/CD documentation
- Automated Building: Every push and PR is automatically built and tested
- Artifact Generation: Build artifacts are automatically created and stored
- Release Automation: Tagging a version automatically creates a GitHub Release
- Quality Assurance: Tests run on every build to ensure code quality
- Manual Triggers: Both workflows can be manually triggered when needed
- Push code to trigger CI builds
- All artifacts are available in the Actions tab
- Tests run automatically on every PR
- Update version in code (if applicable)
- Commit changes
- Create and push a version tag:
git tag v1.0.0 git push origin v1.0.0
- The release is automatically created with downloadable artifacts
- ✅ Consistent build process across all environments
- ✅ Automated testing ensures code quality
- ✅ Easy access to build artifacts for testing
- ✅ Streamlined release process
- ✅ Automated release notes generation
- ✅ Version-tagged releases with downloadable packages
- Platform: Windows (required for WPF)
- SDK: .NET 6.0
- Build Configuration: Release
- Package Format: ZIP
- Artifact Storage: GitHub Actions artifacts and GitHub Releases