This PR introduces up a CI/CD pipeline using GitHub Actions, triggered by pushes to the master and workflows branches. It includes steps for compiling, testing, and packaging the project, culminating in the automated deployment of packages to NuGet, streamlining the process for code validation and release management.
Jobs overview
build:
Sets up .NET, uses GitVersion for semantic versioning, builds the project, caches NuGet packages, and uploads artifacts.
test:
Runs after build, downloads artifacts, executes tests, and uploads results.
nuget:
Post build and test, repackages artifacts into NuGet packages with the version from GitVersion, and uploads to GitHub Package Registry. This step requires no additional setup post-merge and can be modified to push to nuget.org by changing the NuGet feed URL and API key.
release:
Creates a GitHub release with the version from the build job.
Highlights:
Repository/Organisation Agnostic: No extra configuration needed post-merger.
Automated Semantic Versioning: Leveraging GitVersion for meaningful versioning.
Flexible Package Publishing: Default setup for GitHub Package Registry, easily switchable to nuget.org by updating the feed URL and API key in the nuget job.
This PR introduces up a CI/CD pipeline using GitHub Actions, triggered by pushes to the master and workflows branches. It includes steps for compiling, testing, and packaging the project, culminating in the automated deployment of packages to NuGet, streamlining the process for code validation and release management.
Jobs overview
build:
Sets up .NET, uses GitVersion for semantic versioning, builds the project, caches NuGet packages, and uploads artifacts.
test:
Runs after build, downloads artifacts, executes tests, and uploads results.
nuget:
Post build and test, repackages artifacts into NuGet packages with the version from GitVersion, and uploads to GitHub Package Registry. This step requires no additional setup post-merge and can be modified to push to nuget.org by changing the NuGet feed URL and API key.
release:
Creates a GitHub release with the version from the build job.
Highlights:
Repository/Organisation Agnostic: No extra configuration needed post-merger.
Automated Semantic Versioning: Leveraging GitVersion for meaningful versioning.
Flexible Package Publishing: Default setup for GitHub Package Registry, easily switchable to nuget.org by updating the feed URL and API key in the nuget job.