A ZeroFailed extension containing features that support build processes for .NET projects.
| Component Type | Included | Notes |
|---|---|---|
| Tasks | yes | |
| Functions | yes | |
| Processes | no | Designed to be compatible with the default process provided by the ZeroFailed.Build.Common extension |
For more information about the different component types, please refer to the ZeroFailed documentation.
This extension consists of the following feature groups, refer to the HELP page for more details.
- Compilation
- Testing
- SBOM generation
- NuGet & Application Packaging
- NuGet Publishing
The diagram below shows the discrete features and when they run as part of the default build process provided by ZeroFailed.Build.Common.
kanban
init
version
build
dnbuild[Build .NET solution]
test
dntest[Run tests with code coverage]
dnrepgen[Generate test report]
analysis
runcovenant[Generate SBOM for solution]
package
dnpack[Build NuGet packages]
dnpublish[Build project publish packages]
publish
dnpub[Publish NuGet packages]
Using this extension requires the following components to be installed:
The following ZeroFailed extensions will be installed when using this extension.
| Extension | Reference Type | Version |
|---|---|---|
| ZeroFailed.Build.Common | git | main |
If you are starting something new and don't yet have a ZeroFailed process setup, then follow the steps here to bootstrap your new project.
Once you have the above setup (or it you already have that), then simply add the following to your list of required extensions (e.g. in config.ps1):
$zerofailedExtensions = @(
...
# References the extension from its GitHub repository. If not already installed, use latest version from 'main' will be downloaded.
@{
Name = "ZeroFailed.Build.DotNet"
GitRepository = "https://github.com/zerofailed/ZeroFailed.Build.DotNet"
GitRef = "main" # replace this with a Git Tag or SHA reference if want to pin to a specific version
}
# Alternatively, reference the extension from the PowerShell Gallery.
@{
Name = "ZeroFailed.Build.DotNet"
Version = "" # if no version is specified, the latest stable release will be used
}
)To use the extension to build an existing .NET solution, simply add the SolutionToBuild property with the path to your .sln file.
# Load the tasks and process
. ZeroFailed.tasks -ZfPath $here/.zf
...
$SolutionToBuild = "<path-to-sln-file>"
...
# Customise the build process
task . FullBuildFor an end-to-end example of using this extension to build a .NET project, please take a look at this sample repo.