This document describes the automated build and release process for FormCraft.
The NUKE build system has been enhanced to automatically:
- Push NuGet packages to NuGet.org
- Create GitHub releases with changelog
- Upload NuGet packages as release assets
When you push a version tag (e.g., v1.0.0) to the main branch:
- CI/CD Pipeline runs automatically
- Tests are executed
- NuGet packages are created
- Packages are published to NuGet.org
- GitHub release is created with:
- Changelog generated from commit history (using git-cliff)
- NuGet packages attached as assets
- Proper version tagging
Ensure these secrets are configured in your GitHub repository:
NUGET_API_KEY: Your NuGet.org API key for package publishingGITHUB_TOKEN: Already available by default in GitHub Actions
The GitHub Actions workflow requires:
contents: write- For creating releasespackages: write- For publishing packages
- Update version in your project
- Commit changes to main branch
- Create and push a version tag:
git tag v1.0.0 git push origin v1.0.0
The CI/CD pipeline will automatically:
- Build and test the project
- Create NuGet packages
- Push to NuGet.org
- Create a GitHub release with changelog
Continuous: Runs on every push/PR (build, test, pack)Publish: Publishes to NuGet.org (requires tag on main branch)CreateGitHubRelease: Creates GitHub release (triggered after publish)
Changelogs are generated using git-cliff based on conventional commits:
feat:- Featuresfix:- Bug fixesdocs:- Documentationchore:- Maintenance
To test the build locally:
./build.sh Compile
./build.sh Test
./build.sh PackNote: Publishing requires proper credentials and should only be done via CI/CD.