All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
6.3.0 / 2022-12-12
- Added new version of
Octokit
- Added
OptionalAttribute
to suppress auto-injection warnings - Added ability to override
ProcessCustomLogger
inToolSettings
- Added ability to exclude auto-linked files in build project
- Added
DiscordTasks
- Added
MastodonTasks
- Added
JavaScriptProject
project type - Added
MakeNSISTasks
- Fixed wording for static and dynamic conditions in build summary
- Fixed waiting for confirmation when input is redirected
- Fixed recursion into symlink directories
- Fixed
ProcessException
to output standard output - Fixed
MinimalOutput
inUnityTasks
- Fixed missing
AzurePipelinesBuildReason
- Fixed missing arguments in
DotNetTasks
- Fixed argument formatting in
HelmTasks
- Fixed missing command in
DotNetTasks
6.2.1 / 2022-08-19
- Fixed logging configuration
6.2.0 / 2022-08-19
- Added support for intercepted targets
- Added target interception for Docker
- Added support for context components
- Added
DisableDefaultOutputAttribute
- Added
InstallNpmToolsAttribute
andNpmExecutableAttribute
- Added
EnvironmentInfo.IsArm64
- Added
SetProcessExecutionTimeout
overload forTimeSpan
- Added
DotNetRuntimeIdentifiers
- Fixed telemetry
- Fixed
GetPathExecutable
to manually searchPATH
environment variable if locator executable is not available - Fixed resolution of surrogate arguments in Visual Studio
- Fixed performance of
NuGetPackageResolver
- Fixed
GitTasks.GitIsDetached
- Fixed missing members in
GitHubActionsImage
- Fixed missing members in
AzurePipelinesRepositoryType
- Fixed detection for Bamboo
- Fixed missing arguments in
KubernetesTasks
- Fixed missing arguments in
DockerTasks
6.1.2 / 2022-07-02
- Removed
Newtonsoft.Json.Schema
dependency - Fixed
Nuke.GlobalTool
to targetnet6.0
- Fixed telemetry to calculate properties only on demand
- Fixed missing
Framework
inMinVerTasks
andMinVerAttribute
- Fixed missing arguments in
DotNetTasks
6.1.1 / 2022-06-21
- Fixed output encoding in
Nuke.GlobalTool
to be UTF-8 - Fixed telemetry to handle Git repositories without remote
- Fixed
GitRepository.HttpsUrl
andSshUrl
whenEndpoint
is null - Fixed
ShutdownDotNetServerBuildAttribute
to timeout after 15 seconds
6.1.0 / 2022-06-14
- Removed extended setup wizard
- Changed
Nuke.GlobalTool
to useSpectre.Console
- Deprecated
CheckBuildProjectConfigurationsAttribute
- Added single-file packaging and execution
- Added output customization via
NukeBuild.WriteLogo
,WriteTarget
, andWriteSummary
- Added second-chance registration for MSBuild from .NET CLI
- Added submodule support in GitHub Actions, Space Automation, and AppVeyor
- Added
NukeBuild.BuildAssemblyFile
property - Added generic
EnvironmentInfo.SetVariable
- Added support for Bitbucket
- Added GitHub Actions support for
fetch-depth
- Fixed
default_target
replacement in help text - Fixed parameter padding and line breaks in help text
- Fixed
Assert
methods to acceptIReadOnlyCollection
- Fixed fatal failure of
MSBuildLocator
- Fixed missing MSBuild registration when using
ProjectExtensions
- Fixed
NuGetPackageResolver
performance by reading metadata from.nuspec
files - Fixed
GitRepository
initialization when remote is not set - Fixed exception for duplicated keys in TeamCity property files
- Fixed missing arguments for
DotNetTasks
6.0.3 / 2022-05-02
- Fixed exception handling in various places
- Fixed shell-completion file to be written after parameter resolution
- Fixed
SpecialFolders.UserProfile
on Docker - Fixed
SolutionSerializer
to work on sanitized content - Fixed
GitRepository
branch extensions to consider plurals - Fixed handling of spaces in GitHub Actions and Azure Pipeline generation
- Fixed resolution of MSBuild for Visual Studio Build Tools edition
6.0.2 / 2022-04-13
- Fixed
Update
command to usenet6.0
- Fixed handling of common errors
- Fixed assertion messages to only include argument expression when message is
null
- Fixed log file pattern to use
-
instead of:
for time - Fixed padding of target names in logging
- Fixed logging to use
ExecutingTarget
instead ofTarget
to reduce clashing - Fixed concurrent writing of shell-completion files
- Fixed telemetry to check for interactive console
- Fixed passing build instance for value injection in components
- Fixed
ValueInjectionAttributeBase.GetMemberValue
to consider members from components - Fixed resolution of members from parameter files
- Fixed reporting of exceptions in summary when not thrown from targets
- Fixed naming for .NET SDK in bootstrapping scripts
- Fixed GitHub Actions to use
GITHUB_TOKEN
instead ofGITHUB_CONTEXT
- Fixed GitHub Actions assertion messages
- Fixed missing output types for
ReportGeneratorTasks
- Fixed missing arguments for
HelmTasks
- Fixed missing arguments for
SonarScannerTasks
- Fixed missing command for
KubernetesTasks
- Fixed path resolution in
PowerShellTasks
to use PowerShell Core on non-Windows systems - Fixed missing runtime types in
NSwagTasks
6.0.1 / 2022-01-10
- Fixed invisible output for
SystemConsoleHostTheme
- Fixed
GetRelativePath
for same parts in different places
6.0.0 / 2022-01-07
- Removed
ToolSettings.ProcessLogFile
andProcessLogTimestamp
- Removed
GitHub
prefix forGitHubActions
environment variables - Deprecated
Logger
in favor ofSerilog.Log
- Deprecated
ControlFlow
asserts in favor ofAssert
class - Changed
Nuke.GlobalTool
to enableRollForward
withLatestMajor
- Changed default serialization settings for JSON and YAML in
SerializationTasks
- Changed GitHub Actions generation to use default
GitHubActions.Token
throughEnableGitHubContext
- Changed Azure Pipelines generation to use default
AzurePipelines.AccessToken
throughEnableAccessToken
- Added shell-completion support for global tool builds
- Added
NukeBuild.ExecutionPlan
to public API - Added
Partition.Part
andTotal
to public API - Added
MSBuildToolPathResolver
support for Visual Studio 2022 - Added
XmlTasks
variants forstring
objects - Added
AbsolutePath.Name
andNameWithoutExtension
properties - Added
AbsolutePath.Exists
,FileExists
, andDirectoryExists
extension methods - Added
Project.HasPackageReference
andGetPackageReferenceVersion
- Added
UpdateFile
variants inSerializationTasks
- Added
StdToText
andStdToJson
extension methods forIEnumerable<Output>
- Added newest worker images for Azure Pipelines, GitHub Actions, and AppVeyor generation
- Added Azure Pipelines generation for pull-request triggers, fetch depth, and clean checkout
- Added Space Automation support for secrets
- Added TeamCity support for GUID tokens
- Added
AzurePipelinesCachePaths
for common cache paths - Added
AzurePipelines.PhaseName
property - Added
GitHub.CreateComment
for issue and pull-request comments - Added
TeamCity.AuthUserId
andAuthPassword
properties - Added
AppVeyorSecretAttribute
for generation of secret value entries - Added
HttpClient
,HttpRequest
, andHttpResponse
extensions - Added
XNode
extensions - Added
LatestMavenVersionAttribute
- Added
MauiCheckTasks
- Added
MinVerTasks
andMinVerAttribute
- Added
PowerShellTasks
- Added
BootsTasks
- Added
NetlifyTasks
- Fixed check for executables compiled with
PublishSingleFile
- Fixed
MSBuild
localization usingMSBuildLocator
- Fixed missing assertion for successful status code in
HttpTasks
- Fixed Azure Pipelines caching
- Fixed
IBuildServer.Branch
forAzurePipelines
- Fixed
OctoVersionTasks
andOctoVersionAttribute
for latest version - Fixed
AzureSignToolTasks
to invokesign
command - Fixed missing
Files
property inAzureSignTool
- Fixed missing
Blame*
properties inDotNetTasks
- Fixed property types in
ILRepackTasks
- Fixed
UnityTasks
to auto-detect version - Fixed quoting for
UnityTasks.LogFile
5.3.0 / 2021-08-04
- Added LFS and Submodule settings in AzurePipelines configuration
- Added
OctoVersionTasks
andOctoVersionAttribute
- Added
AzureSignToolTasks
- Added
ChocolateyTasks
- Fixed invocations for PowerShell bootstrapping script
- Fixed retrieval of
version_dotnet_sdk
in telemetry - Fixed solution serialization to show information about duplicated entries
- Fixed path construction to be lazy for in-memory solutions that get saved
- Fixed
GitHubTasks.GetGitHubBrowseUrl
to trim trailing slash - Fixed
GitVersionAttribute.Framework
default value tonet5.0
- Fixed URLs in
ChangeLogTasks
- Fixed
DotNetTestSettings.Loggers
property to accept multiple values - Fixed default value emission for
DotCoverTasks
- Fixed missing properties for
GitVersionTasks
- Fixed missing secret attributes in
SonarScannerTasks
- Fixed
NerdbankGitVersioningFormat
enumeration to use lower-case
5.2.1 / 2021-06-18
- Fixed telemetry
- Fixed humanized string concatenation
5.2.0 / 2021-06-18
- Added telemetry data collection
- Added unified
NukeBuild.Partition
property - Added
Rider
,VisualStudio
,VSCode
asHost
implementations - Added
GitRepository.IsOnMainBranch
andIsOnMainOrMasterBranch
- Added
AbsolutePath
equality operators - Fixed SpaceAutomation to generate default
refSpec
- Changed
Microsoft.CodeAnalysis.CSharp
package version to3.9.0
- Removed
Refit
reference andITeamCityRestClient
interface - Removed
Colorful.Console
reference and embedded figlet fonts
5.1.4 / 2021-06-01
- Fixed
StronglyTypedSolutionGenerator
to resolve root directory only on demand - Fixed
JetBrains.Annotations
to be packed with source generators - Fixed missing SpaceAutomation configuration link
5.1.3 / 2021-05-31
- Fixed filtering explicitly overridden targets in build components
5.1.2 / 2021-05-18
- Fixed target duration to be measured immediately after execution
- Fixed build script invocation from global tool
- Fixed
AddPackage
command to allow explicit version parameter - Fixed navigation methods to not be included in command list
- Fixed
StronglyTypedSolutionGenerator
to resolve root directory only on demand - Fixed
EnvironmentInfo.Framework
to use entry assembly - Fixed parsing of
GitRepository
remote - Fixed missing pull-request properties in TeamCity
- Fixed
RunNumber
andRunId
inGitHubActions
to be of typelong
- Fixed
GitVersionAttribute
to automatically populateGit_Branch
on TeamCity
5.1.1 / 2021-04-23
- Fixed parameter loading with missing default parameters file
- Fixed visibility of
Directory.Build
files - Fixed
ArgumentsFromCommitMessageAttribute
to require manual application - Fixed summary reporting for exceptions to only include first line of message
- Fixed update notification
- Fixed PowerShell invocation from
build.cmd
- Fixed
Update
andSetup
command to not stage parameters file - Fixed
Update
command for absent bootstrapping scripts - Fixed skipping unhandled syntax fragments in Cake conversion
- Fixed missing
Instance
properties forIBuildServer
implementations - Fixed GitHubActions default cache path
- Fixed missing property for GitHubActions workflow inputs
- Fixed quoting in GitHubActions for included/excluded paths
- Fixed
XmlPoke
to allow specifying encoding - Fixed
ExternalFilesTask
for single file browse-URL - Fixed
ICompile
,IPack
,ITest
components to check againstSucceededTargets
- Fixed setting
RepositoryUrl
inIPack
component
5.1.0 / 2021-04-07
- Removed
:Fix
command from global tool (superseded by:AddPackage
) - Changed
.nuke
configuration file to.nuke
directory - Changed shell-completion to rely on
build.schema.json
file - Changed default
DependencyBehavior
toSkip
- Changed
HostType
toHost
base class - Changed
ExecutionStatus
membersExecuted
toSucceeded
, andExecuting
toRunning
- Changed
IBuildExtension
instances to be cached - Changed
IOnBeforeLogo
andIOnAfterLogo
extensions toIOnBuildCreated
andIOnBuildInitialized
- Changed
IsSuccessful
to check for succeeded, skipped and collective targets - Changed
ParameterAttribute
to allow external value providers withValueProviderType
andValueProviderMember
- Changed GitHubActions secret names to split on camel-humps
- Added support for parameter files (profiles)
- Added source generator for strong-typed solutions
- Added shorthand dependencies for build components
- Added
ReportSummary
for summary extension toNukeBuild
andINukeBuild
- Added exception reporting in summary
- Added
ParameterPrefixAttribute
for build components - Added build extensions for
OnTargetSkipped
,OnTargetRunning
,OnTargetSucceeded
, andOnTargetFailed
- Added styling for unlisted targets in execution plan HTML
- Added
:Secrets
command to global tool andSecretAttribute
for encryption in parameters files - Added
:AddPackage
command to global tool - Added
:GetConfiguration
command to global tool - Added
:Update
command to global tool - Added
:CakeConvert
and:CakeClean
commands to global tool - Added generation of
Directory.Build.props
andDirectory.Build.targets
files - Added parameter resolution for root directory in global tool
- Added shell-navigation aliases
nuke/
andnuke-
- Added
ScheduledTargets
,RunningTargets
,AbortedTargets
,FailedTargets
,SucceededTargets
collections toNukeBuild
andINukeBuild
- Added
ArgumentsFromCommitMessageAttribute
and:Trigger
command to global tool - Added
ExitCode
toINukeBuild
- Added
IsFinished
andIsFailing
toNukeBuild
andINukeBuild
- Added caching for
ValueInjectionUtility.TryGetValue
- Added equality operators and implicit conversion to string for Enumeration
- Added
GetProject
,GetSolutionFolder
,Projects
, andSolutionFolders
toSolutionFolder
- Added
GetRuntimeIdentifers
toProjectExtensions
- Added string-escape extension for MSBuild in
DotNetTasks
andMSBuildTasks
- Added
EnsureExistingDirectory
andEnsureExistingParentDirectory
overloads forAbsolutePath
- Added
XmlPeekElements
toXmlTasks
- Added
GitRepository
propertiesRemoteName
andRemoteBranch
- Added support for
NerdbankGitVersioning
- Added
NoCache
property toGitVersionAttribute
with default valuetrue
- Added
SendOrUpdateSlackMessage
toSlackTasks
- Added support for JetBrains SpaceAutomation
- Added support for GitHub Actions dispatch workflows
- Added support for GitLab CI
- Added support for multiple AppVeyor configurations
- Added support for AppVeyor secrets
- Added support for platform-independent TeamCity configurations
- Added TeamCity parameter to replace run-button caption
- Added
AddTeamCityLogger
forDotNetTest
task - Added
IsPersonalBuild
property toTeamCity
- Added caching for
AzurePipelinesAttribute
andGitHubActionsAttribute
- Added
SetVariable
toAzurePipelines
- Added
CodeMetricsTasks
- Added
PulumiTasks
- Added
CodecovTasks
- Added
CorFlagsTasks
- Added
FixieTasks
- Added
ILRepackTasks
- Fixed skip reason for targets skipped from
--skip
parameter - Fixed execution plan legend
- Fixed execution plan highlighting for multiple default targets
- Fixed
ConsoleUtility
to allow full deletion of secret - Fixed exception reporting for
ExecutableTargetFactory
- Fixed handling of value types in
ValueInjectionUtility.TryGetValue
- Fixed calculation of value sets for collection parameters
- Fixed compilation of legacy template
- Fixed
IsDescendantPath
to split path parts - Fixed
MoveDirectory
with additionaldeleteRemainingFiles
parameter - Fixed
SwitchWorkingDirectory
to respectallowCreate
parameter - Fixed
ResponseArchive
inISignPackages
build component - Fixed MSBuild path resolution to fallback to using
dotnet --list-sdks
- Fixed client usage in
GitHubTasks
- Fixed token ordering in
TemplateUtility
- Fixed default value for collections in TeamCity configurations
- Fixed TeamCity composite configurations to propagate failures
- Fixed
TeamCity
andAzurePipelines
to update build numbers in environment variables - Fixed
TriggerBatch
in AzurePipelines generation - Fixed condition in AppVeyor generation
- Fixed
FileFilters
property inReportGeneratorTasks
- Fixed logger for
DocFXTasks
- Fixed
Severity
property inReSharperTasks
- Fixed missing
MSBuild
andToolRestore
task inDotNetTasks
- Fixed missing
Buildx
task inDockerTasks
- Fixed missing
CoverDotNet
task inDotCoverTasks
- Fixed missing
GenericCoveragePaths
property inSonarScannerTasks
- Fixed missing properties in
ReSharperTasks
- Fixed missing properties in
TeamCity
,GitHubActions
, andAzurePipelines
- Fixed missing
SignToolDigestAlgorithm
enumeration inSignToolTasks
5.0.2 / 2020-12-07
- Fixed
ChangelogTasks
to use HTTPS links in history - Fixed
DotNetRun
andDotNetTest
run settings - Fixed conditions for informational text
5.0.1 / 2020-12-06
- Fixed configuration generation to wait for user input after file changes
- Fixed build summary for durations smaller than 1 second
- Fixed build summary and
IBuildExtension
instances to be skipped if no targets were started - Fixed build summary to hide irrelevant durations
- Fixed setting of
EmbeddedPackagesDirectory
for global tools - Fixed
PackPackageToolsTask
to use lower-case package ids - Fixed
ParameterAttribute.ValueProvider
to allow members of typeIEnumerable<string>
- Fixed
Logger
to removeControlFlow
from stacktrace - Fixed assertion messages for warnings
- Fixed path and quoting in
build.cmd
- Fixed
GitVersion.Tool
version in project templates - Fixed
LatestMyGetVersionAttribute
to handle new RSS feed format - Fixed missing arguments
PublishReadyToRun
,PublishSingleFile
,PublishTrimmed
,PublishProfile
,NoLogo
forDotNetPublish
- Fixed parameter name
Verbosity
inDotNetPack
- Fixed enumeration value
lcov
inCoverletTasks
- Fixed
ReSharperTasks
to use correct tool path - Fixed
ChangelogTasks
to respect additional markdown-linting rules - Fixed TeamCity generator to consider artifact products from all relevant targets
- Fixed condition for skipping lines in TeamCity parameter files
5.0.0 / 2020-11-12
- Fixed version number
0.25.0 / 2020-10-26
- Removed
Configuration
fromNuke.Common
and moved it to template - Changed
InjectionAttribute
to catch exceptions and report as warnings - Changed
ToolPathResolver
to ignore casing - Changed
ToolSettings
to prefix common properties withProcess
- Changed property names in
Nuke.Common.targets
- Changed
GitRepository
to trimrefs/heads/
andorigin/
from branch names - Changed
ShutdownDotNetBuildServerOnFinish
to not log by default - Changed
ShutdownDotNetBuildServerOnFinish
to only shutdown on server build - Added support for interface default implementations
- Added
NukeBuild.ExitCode
for custom exit codes - Added
ProcessTasks.StartShell
to invoke shell commands - Added
ToolSettings.Apply
for fluent configurator invocation - Added
ToolSettings.LogFile
andLogTimestamp
- Added
nuke :fix
command toNuke.GlobalTool
for adding missing package downloads - Added
nuke :GetRootDirectory
andnuke :GetParentRootDirectory
inNuke.GlobalTool
- Added
LatestNuGetVersionAttribute
,LatestGitHubReleaseAttribute
,LatestMyGetVersionAttribute
- Added
GitRepository.Protocol
,Commit
, andTags
properties - Added logger delegate to
ControlFlow.ExecuteWithRetry
- Added
BuildExtensionAttributeBase
withPriority
property - Added
UnsetVisualStudioEnvironmentVariables
by default - Added
TeamCity.BuildVcsNumber
property - Added AzurePipelines variable groups, secret and access token import
- Added
AppVeyor.Url
andPushArtifact
members - Added warning when
GitVersion
is used with SSH endpoint andNoFetch
is disabled - Added consolidated
ReSharperTasks
forCleanupCode
,InspectCode
, andDupFinder
- Added
TeamsTasks
- Added
SignPathTasks
- Added
SignClientTasks
- Added
BenchmarkDotNetTasks
- Added
CleanupCodeTasks
- Added
DotNetTasks.DotNetNuGetAddSource
task - Added
OctopusTasks.OctopusBuildInformation
task - Added missing properties in
SonarScannerTasks
- Added verbosity mapping attributes for
NUnit
,OpenCover
, andReportGenerator
- Fixed version check in bootstrapping scripts to rely on dotnet CLI exit code
- Fixed deactivation of multi-level lookup in bootstrapping scripts
- Fixed deactivation of shared compilation in bootstrapping scripts
- Fixed
ToolPathResolver
to consider all package executable names - Fixed
ToolPathResolver
to choose executable based on operating system - Fixed output/input encoding to use
UTF-8
- Fixed
NukeBuild.BuildProjectFile
property - Fixed AppVeyor generation for Unix images
- Fixed
AzurePipelinensAttribute
to allow multiple use - Fixed AzurePipelines to replace dots in stage name with underscore
- Fixed
AppVeyor.UpdateBuildVersion
to set environment variable - Fixed
DupFinderTasks.DiscardCost
property - Fixed
DotCoverTasks
to use double-dashes instead of slashes - Fixed
NpmTasks.CustomLogger
to detect warnings in error output
0.24.11 / 2020-05-18
- Fixed transitive artifacts in configuration generation
- Fixed
StackOverflowException
in configuration generation - Fixed
IsPackable
property default - Fixed missing colon in GitHubActions triggers
- Fixed assertion message for finding Git directory
- Fixed assertion message for
teamcity.dotCover.home
0.24.10 / 2020-04-24
- Fixed MSBuild targets to switch on
MSBuildRuntimeType
again - Fixed default includes for
NukeSpecificationFiles
andNukeExternalFiles
- Fixed indentation for GitHubActions scheduled triggers
- Fixed assertion message for GitHubActions trigger definitions
- Fixed default
RootNamespace
0.24.9 / 2020-04-16
- Fixed MSBuild targets directories
0.24.8 / 2020-04-12
- Fixed publishing of global tool for
netcoreapp3.1
- Fixed .NET Core SDK install script URL
- Fixed trap error output in PowerShell bootstrapping
- Fixed AzurePipelines push triggers
- Fixed AzurePipelines configuration to allow overriding configuration directory
- Fixed previous constructor usages for
AzurePipelinesAttribute
- Fixed PowerShell downloads to use TLS 1.2 security protocol
- Fixed unrecognized
Visible
attribute forPackageDownload
item group
0.24.7 / 2020-03-26
- Fixed MSBuild targets for .NET Core
- Fixed
GitRepository.GetGitHubMilestone
to retrieve milestone independent of state
0.24.6 / 2020-03-25
- Fixed NuGet package resolution performance
- Fixed MSBuild integration
- Fixed TeamCity trace output to be dark gray
- Fixed missing using statement for
Nuke.Common.IO
0.24.5 / 2020-03-24
- Fixed TeamCity configuration to use Bash script on Unix
0.24.4 / 2020-03-05
- Fixed Refit version
- Fixed conversion of
GitHubActionsTrigger
- Fixed project default includes to check existence of files
- Fixed projects to target
netcoreapp2.1
- Fixed configuration generation to allow multiple configurations per host type
- Fixed
AzurePipelinesAttribute
to allow setting a configuration suffix - Fixed CI server detection to ignore empty environment variables
- Fixed
TeamCityOutputSink
to not report errors as build problems - Fixed custom logger for
NpmTasks
- Fixed custom logger for
DockerTasks
- Fixed missing NuGet install task
- Fixed missing
Framework
property inOctopusTasks
- Fixed missing
ReportType
inDotCoverTasks
- Fixed missing properties in
DotNetTasks
- Fixed Glob version
- Fixed
GitVersionAttribute
to avoid duplicated version numbers - Fixed
System.ValueTuple
version
0.24.2 / 2020-02-15
- Fixed extension methods for settings with base type
- Fixed
SonarScannerTasks
to haveFramework
property - Fixed generation of
shell-completion.yml
to exclude unlisted targets for invocation
0.24.1 / 2020-02-07
- Fixed
NuGetPackageResolver
to include dependencies during tool path resolution - Fixed parsing of TeamCity environment variables
- Fixed execution flags for
build.sh
andbuild.cmd
scripts during setup - Fixed assertion message in
UnityTasks
- Fixed
build.cmd
to have newline at end-of-file - Fixed logo spacing
0.24.0 / 2020-02-02
- Removed
NuGetPackage
tasks and AutoMapper package reference - Removed TeamCity definitions for
VcsRoot
and trigger timezones - Changed
AbsolutePath
,RelativePath
,WinRelativePath
andUnixRelativePath
to outer scope - Changed default package for
DotCoverTasks
toJetBrains.dotCover.DotNetCliTool
- Changed default includes to be provided via
Nuke.Common.targets
- Changed
ConfigurationGenerationAttributeBase
toConfigurationAttributeBase
- Changed manually invoked targets to be TeamCity deployment configurations
- Changed
AzurePipelines
interface to use enumerations for test result type and code coverage tool type - Changed package version for
Glob
,Microsoft.IdentityModel.Clients.ActiveDirectory
,Newtonsoft.Json
,NuGet.Packaging
,Refit
,YamlDotNet
- Added cross-platform
build.cmd
bootstrapping script - Added build emotions
- Added update of build number for TeamCity, AppVeyor, and Azure Pipelines from
GitVersionAttribute
- Added
AzureKeyVault
– previously available as addon - Added
DocFXTasks
,DockerTasks
,HelmTasks
,KubernetesTasks
, andNSwagTasks
– previously available as addons - Added TeamCity logger extension method for
DotNetBuildSettings
- Added support for checkboxes in TeamCity configuration
- Added
GitHubTasks
- Added
ProjectModelTasks.CreateSolution
- Added
Solution.GetProject
andGetSolutionFolder
overloads viaGuid
- Added
TeamCity.NightlyBuildAlways
property - Added detailed null-check for
teamcity.build.branch
configuration property - Added Coverlet extension methods for
DotNetTest
task - Added
AzurePipelines.PublishCodeCoverage
- Added setters for
Project
properties - Added
Solution.AddSolution
andProjectModelTask.CreateSolution
overload for creating global solutions - Added path extension methods for
Get(Win|Unix)RelativePathTo
,Contains
, andTo(Win|Unix)RelativePath
- Added
NoFetch
,Framework
, andUpdateBuildNumber
properties toGitVersionAttribute
- Fixed directory creation in bootstrapping scripts
- Fixed artifact paths for TeamCity and Azure Pipelines
- Fixed path separators for AppVeyor and GitHubActions configurations
- Fixed
NSwag
to quote tool path - Fixed
SolutionSerializer
to handle inconsistent whitespaces - Fixed
NpmCi
task to include definite argument - Fixed
VSTestSettings.TestCaseFilters
to be list of strings - Fixed
EnvironmentInfo.FrameworkName
- Fixed
cleanCheckoutDirectory
to be set for all TeamCity build types - Fixed
AddTeamCityLogger
extension method - Fixed
buildType
reference in TeamCity build-finished triggers - Fixed
ReportGenerator
task to resolveReportGenerator.dll
- Fixed sharing of artifacts between agents
- Fixed
GitVersionSettings.UpdateAssemblyInfoFileNames
to be an array
0.23.7 / 2020-01-28
- Fixed summary alignment for hosts that trim whitespaces
0.23.6 / 2020-01-12
- Fixed
InspectCodeTasks
to use new plugin endpoint for downloading - Fixed
AppVeyorOutputSink
to issue a warning when exceeding the default limit of 500 messages
0.23.5 / 2020-01-10
- Fixed CI integrations to use correct warning/error reporting infrastructure
- Fixed TeamCity configuration to use
UTF-8
encoding - Fixed process encoding by setting
StandardOutputEncoding
andStandardErrorEncoding
toUTF-8
- Fixed solution deserialization for missing configuration section
- Fixed logo spacing
0.23.4 / 2019-11-16
- Fixed assignment for
NuGetAssetsConfigFile
whenBuildProjectDirectory
is null - Fixed
ToolPathResolver
to not require framework when only one file matches
0.23.3 / 2019-11-02
- Fixed separator in Azure Pipelines service messages
0.23.2 / 2019-11-02
- Fixed ensuring of existing directory for generation of configuration files
- Fixed packaging of
MSBuildTaskRunner
inNuke.Common
0.23.1 / 2019-11-02
- Fixed checking hashes for non-existing configuration files
- Fixed null-reference exception for commands without message
0.23.0 / 2019-10-31
- Changed target frameworks to
netcoreapp3.0
andnet472
- Changed
AzureDevOps
toAzurePipelines
- Changed
CheckBuildProjectConfigurationsAttribute
to skip dot-prefixed directories - Removed
ProjectFromAttribute
- Removed
MSBuildTasks.MSBuildParseProject
- Removed
GitVersion.GetNormalizedAssemblyVersion
andGetNormalizedFileVersion
- Added NuGet package resolution from
project.assets.json
file - Added CI interface resolution via
CIAttribute
- Added
Bamboo
interface - Added
TeamCityImportDotCoverPathAttribute
to address version mismatch - Added
GitHubActionsAttribute
for configuration generation - Added
AzurePipelinesAttribute
for configuration generation - Added
AppVeyorAttribute
for configuration generation - Added execution of
dotnet build-server shutdown
when build has finished - Added
NpmCi
task - Fixed
TeamCity
parameter dictionaries to use original keys - Fixed NuGet package resolution for project files without
PackageReference
items - Fixed code inspections in PowerShell script
- Fixed resolution for legacy package directories
- Fixed generation of
Partition
parameter and script paths - Fixed
ToolPathResolver
to support global tool packages - Fixed
ReportGeneratorTasks
andGitVersionTasks
by providingFramework
property
0.22.2 / 2019-09-29
- Fixed SourceLink integration
0.22.1 / 2019-09-21
- Fixed assertion message for missing packages
0.22.0 / 2019-09-17
- Changed
UnlistedAttribute
toList
property onParameterAttribute
- Changed summary to show aborted and not-run targets as warning
- Changed
TeamServices
toAzureDevOps
- Changed namespace
Nuke.Common.BuildServers
toNuke.Common.CI.*
- Added support for multiple default targets
- Added support for
PackageDownload
item group - Added support for hyphens in target names
- Added support for absolute paths in
LocalExecutableAttribute
- Added support for
GitHubActions
- Added TeamCity configuration generation via
TeamCityAttribute
- Added XML serialization for .NET Core
- Added reporting of TeamCity statistical values
- Added additional methods for
CloudFoundryTasks
- Added
ProjectType
for Docker and SQL projects - Added implicit cast operator for generated enumerations
- Added
InnoSetupTasks
- Added
TwitterTasks
- Added
IOnBuildFinished
build extension - Added missing arguments for
CoverletTasks
- Fixed
--boot
in setup for .NET Framework/Mono support - Fixed XML documentation for generated CLI tasks
- Fixed
MSBuildToolPathResolver
to consider preview editions - Fixed
NuGetPackageResolver
to allow multiple versions of the same package - Fixed
TeamCity.SetParameter
andTeamCity.ImportData
- Fixed
SolutionSerializer
to fall back toProjectConfiguration
section - Fixed
MSBuildLocator
package to havevswhere.exe
embedded
0.21.2 / 2019-07-28
- Fixed validation to exclude requirements of skipped targets
- Fixed solution serialization to include malicious project GUID in error message
0.21.1 / 2019-07-19
- Fixed logging of warnings
0.21.0 / 2019-07-15
- Changed
ProjectModelTasks.ParseProject
to revertMSBUILD_EXE_PATH
environment variable - Added
CloudFoundryTasks
- Added missing arguments for
SonarScannerTasks
- Added missing arguments for
OctopusTasks
- Added
Jenkins.BranchName
andJenkins.ChangeId
0.20.1 / 2019-06-02
- Fixed MSBuild evaluation issues by updating NuGet.Packaging to v4.9.2
0.20.0 / 2019-05-29
- Changed
Solution.GetProject
to allow resolution from full path - Changed HTML execution plan to be shown left-to-right
- Added
When
overload for combinatorial settings - Added
Project.GetOutputType
method for convenience - Added
GlobbingOptionsAttribute
for configuration of case-sensitivity - Fixed casing of
NuGet.exe
- Fixed
TeamServices
to resolveBuildNumber
asstring
0.19.2 / 2019-05-10
- Fixed
ProjectModelTasks
to use existingMSBUILD_EXE_PATH
value - Fixed
ParameterService
to consider nullable enum types in value set calculation - Fixed compile errors in build template
0.19.1 / 2019-05-03
- Fixed
RequirementService
to check forInjectionAttributeBase
0.19.0 / 2019-05-03
- Changed MSBuild targets to be invoked with
Exec
task - Changed
ProcessTasks
to avoid Mono when using WSL - Added output for non-default working directories
- Added
GitVersion.VersionSourceSha
- Added
ReportTypes.TeamCitySummary
- Fixed parameter resolution to handle hyphens
- Fixed MSBuild resolution for Visual Studio 2019
- Fixed issues when build has no default target defined
0.18.0 / 2019-03-24
- Changed
ParameterService
to strip dashes when resolving value - Changed formatting of skip reason
- Added
CompressionTasks
- Added
EntityFrameworkTasks
- Fixed
UnityTasks.UnityPath
for Windows - Fixed
SystemColorOutputSink
to print warning and error details - Fixed
SonarScannerTasks
to also resolve from netstandard package
0.17.7 / 2019-03-12
- Fixed
SystemColorOutputSink
to setForegroundColor
0.17.6 / 2019-03-04
- Fixed
RequirementService
to check forParameterAttribute
when injecting values interactively
0.17.5 / 2019-03-03
- Fixed
GlobDirectories
andGlobFiles
to not collect items lazily
0.17.4 / 2019-03-02
- Fixed bootstrapping script to not set
NUGET_XMLDOC_MODE
0.17.3 / 2019-02-27
- Fixed documentation file generation
- Fixed
CheckBuildProjectConfigurationsAttribute.Timeout
to be settable
0.17.2 / 2019-02-24
- Fixed parsing of changelog
0.17.1 / 2019-02-23
- Fixed attributes in build tasks
0.17.0 / 2019-02-23
- Removed collection-based tasks in
FileSystemTasks
- Changed
ContinueOnFailure
toProceedAfterFailure
- Changed summary output to not include collective targets
- Added
logInvocation
parameter andToolSettings.LogInvocation
property - Added interactive parameter resolution
- Added
RequiredAttribute
for globally required parameters - Added skip reason to summary
- Added
FileGlobbingAttribute
andDirectoryGlobbingAttribute
- Added
GetProperty<T>
,GetItems<T>
, andGetItemMetadata<T>
asProjectExtensions
- Added
Unlisted
for target declarations - Added
ToolResolver
for custom delegate resolution - Added
DotNetToolInstall
,DotNetToolUninstall
, andDotNetToolUpdate
- Added
UnsetVisualStudioEnvironmentVariablesAttribute
- Added universal log methods with severity as parameter
- Fixed parameter resolution for value types
- Fixed
AbsolutePath
to be serializable - Fixed output for parallel task execution
- Fixed exit code for failing targets using
ProceedAfterFailure
- Fixed exception message for circular dependencies
0.16.0 / 2019-01-30
- Changed setting of default working directory for process invocations
- Changed
Logger.Log
toLogger.Normal
- Added
NukeBuild.Execute
overload without default target - Added
ContinueOnFailure
andAssuredAfterFailure
as target definition methods - Added
AbsolutePath
extensions forGlobDirectories/Files
- Added
AggregateException
handling to show number as prefix when flattening - Added
AnsiColorOutputSink
for Bitrise, TeamCity, Travis, TeamServices - Added
ProjectModelTasks.ParseProject
based onMicrosoft.Build
packages - Added
LocalExecutableAttribute
- Added
degreeOfParallelism
andcompleteOnFailure
for combinatorial invocations - Added
[Tool]Tasks.[Tool]Logger
as settable field for custom logging - Added
VerbosityMappingAttribute
- Added format-property map for CLI tasks
- Fixed
EnsureCleanDirectory
to only clean instead of delete and recreate - Fixed
TeamCityOutputSink
to not report errors as build problems - Fixed
SolutionAttribute
to resolve first by constructor argument - Fixed
Xunit2ParallelOption
to use lower-case text
0.15.0 / 2019-01-16
- Changed
OnlyWhen
toOnlyWhenStatic
andOnlyWhenDynamic
- Changed
graph
parameter toplan
- Added
DependentFor
,Triggers
andTriggeredBy
for target declarations - Added
ToolSettings.CombineWith
for combinatorial invocations - Added several
FileSystemTasks
methods - Added
TemplateUtility.FillTemplateDirectory
andFillTemplateFile
- Added highlighting of execution plans in HTML representation
- Added process cancellation handler to always show summary
- Added
NuGetTasks
to add, remove, update, enable, disable and list sources - Added
TravisOutputSink
- Added path resolution for
VSTestTasks
- Added caching of
MSBuild
path inGetMSBuidProject
- Fixed
GitRepository.IsOnDevelopBranch
to recognizedevelop
anddevelopment
- Fixed shell-completion for PowerShell
0.14.1 / 2018-12-31
- Fixed package reference versions
- Fixed
SolutionSerializer
to handle empty lines
0.14.0 / 2018-12-31
- Removed named target dependencies
- Removed choice of target framework in setup
- Changed setup to write solution file reference to configuration file again
- Added extended solution parsing with integration for
Microsoft.Build
- Added
Configuration
type - Added
continue
parameter - Added checking for active build project configurations in solution files
- Added highlighting for default target in HTML graph
- Added
SonarScannerTasks
- Added
EnvironmentInfo.SwitchWorkingDirectory
- Added
SymbolPackageFormat
property forDotNetTasks
,MSBuildTasks
, andNuGetTasks
- Fixed bootstrapping scripts not to leave DotNet processes behind
- Fixed bootstrapping scripts to correctly quote arguments
- Fixed overload of tool path for .NET Core executables
- Fixed default value not to be hidden by cursor
- Fixed
ToolSettingsExtensions.When
to have generic constraint onToolSettings
- Fixed
InspectCodeTasks
to use deterministic hashing - Fixed
ChangelogTasks
to correctly parse empty sections at end of file - Fixed
InjectionAttributeBase
to express implicit assignment only - Fixed
ExternalFilesTask
to be executed beforeRestore
target
0.13.0 / 2018-12-10
- Changed verification of PATH environment variable to be executed only with
Trace
log level - Added
ToolSettings.When
for conditional fluent modifications - Added
.editorconfig
file in setup to avoid formatting issues - Added
DotMemoryUnitTasks
- Added missing properties in
DotNetCleanSettings
,DotNetRestoreSettings
andMSBuildSettings.Restore
0.12.4 / 2018-12-02
- Fixed
SolutionAttribute
to handle empty configuration file
0.12.3 / 2018-11-29
- Fixed
EnvironmentInfo.Variables
not to be cached - Fixed
Glob
package reference in legacy template - Fixed error message for unresolvable root directory
- Fixed global tool setup to hide choice of bootstrapping by default
- Fixed
NuGetPackageResolver
assertion for dependency resolution
0.12.2 / 2018-11-27
- Fixed globbing related issues
- Fixed shell-completion to not split common names
- Fixed bootstrapping scripts to guard extraction of SDK version
- Fixed help text to be printed before value injection
0.12.1 / 2018-11-24
- Fixed bootstrapping scripts to exit without closing PowerShell
- Fixed expansion for Unix environment variables
- Fixed separator for target parameters
- Fixed
ToolPathResolver
to resolve decidedly - Fixed
GitVersionTasks
to resolve based onGitVersion.CommandLine.DotNetCore
package - Fixed
InjectionAttributeBase
to pass build instance - Fixed
ReflectionService
to be public to allow usage in addons - Fixed
DotNetTasks
to exposerestore
related parameters fortest
,build
,publish
,pack
,run
0.12.0 / 2018-11-15
- Changed
NukeBuild
properties to be static - Changed
NukeBuild.RootDirectory
to allow resolution from parameter - Added package resolution for Paket
- Added shell-completion for global tool
- Added parameter resolution for
Enumeration
subclasses - Added
PathExecutableAttribute
andPackageExecutableAttribute
forTool
delegate resolution - Added
PackPackageToolsTask
for global tool packaging - Added
MSpecTasks
- Fixed bootstrapping scripts to install by channel instead of latest version
- Fixed Glob package version to 0.3.2
- Fixed
Arguments
passing ofsecret
parameter
0.11.1 / 2018-10-17
- Security: Updated YamlDotNet version
0.11.0 / 2018-10-11
- Removed deprecated APIs
- Added event methods
OnBuildCreated
,OnBuildInitialized
,OnBuildFinished
,OnTargetStart
,OnTargetAbsent
,OnTargetSkipped
,OnTargetExecuted
andOnTargetFailed
0.10.5 / 2018-10-10
- Fixed
--source
parameter forDotNetRestore
to be collection
0.10.4 / 2018-10-10
- Fixed
GitRepository
when origin URL uses SSH without username
0.10.3 / 2018-10-05
- Fixed
WinRelativePath
andUnixRelativePath
to use correct separator
0.10.2 / 2018-10-04
- Fixed
RequirementService
to also support shorthand for properties
0.10.1 / 2018-10-02
- Fixed wizard to pass definitions for project file template
- Fixed wizard to create source and tests directory if selected
- Fixed wizard to be disabled for legacy format
0.10.0 / 2018-10-02
- Removed
PathConstruction.GetRootRelativePath
- Removed
License
from specification files - Deprecated
NukeBuild.Configuration
which should belong to user-code - Deprecated plus operator in
PathConstruction.AbsolutePath
andRelativePath
- Changed
SolutionAttribute
to resolve solution file via parameter - Changed CLI wrapper tasks to attempt to resolve tool paths from
[TOOL]_EXE
environment variable - Added
AbsolutePath.Parent
and equality members - Added
TypeConverter
forAbsolutePath
which allows passing paths as parameter - Fixed detection of value types in specification files
- Fixed path variable check to split by specific separator
0.9.1 / 2018-09-26
- Fixed wrong assertions in global tool
0.9.0 / 2018-09-22
- Deprecated properties in
NukeBuild
which should belong to user-code - Deprecated default settings which should belong to user-code
- Deprecated
DocFxTasks
which is moved to own package - Added
SpecFlowTasks
- Added
NukeBuild.OutputSink
property for custom logger implementation - Fixed
MSBuildLocator
andMSBuildToolPathResolver
to also consider/usr/local/bin/msbuild
0.8.0 / 2018-09-07
- Changed
ProcessTasks
to automatically invoke .NET Core DLLs withdotnet.exe
- Added
CoverletTask
- Fixed exception in
ChangelogTasks.ReadChangelog
whenvNext
section was empty - Fixed console output to use ASCII instead of Unicode
- Fixed
MSBuildLocator
to use fallbacks when no VS instance with .NET Core is installed
0.7.0 / 2018-08-29
- Changed assertion of
DataClass
properties print out value on failure - Added
SquirrelTasks
- Added
UnityTasks
- Added tasks to update the changelog and get the latest version to
ChangeLogTasks
- Fixed global tool to order solutions descending
- Fixed global tool setup to use correct definitions and error about broken solution
- Fixed validation of requirements of skipped targets
- Fixed double evaluation of conditions with
DependencyBehavior.Skip
0.6.2 / 2018-08-18
- Fixed
MSBuildLocator
to not useSystem.ValueTuple
- Fixed typo in
OctopusCreateReleaseSettings
- Fixed adaptation of solution file in global tool
- Fixed output of global tool on Windows
0.6.1 / 2018-08-09
- Fixed global tool to have 'same as global tool' as fallback version
- Fixed PowerShell invocation to use
-ExecutionPolicy ByPass
and-NoProfile
0.6.0 / 2018-08-05
- Removed setup scripts in favor of
:setup
command in global tool - Removed
ProcessSettings
in favor of integrating related properties intoToolSettings
- Removed deprecated APIs
- Changed tasks with return type to return value tuple
- Changed tasks to redirect output by default
- Added
ITargetDefinition.WhenSkipped
to specify dependency behavior for skipped targets - Added
SlackTasks
andVSWhereTasks
- Added namespace support in
XmlTasks
- Added
FileSystemTasks
for deleting, moving, copying and hash calculation - Added support for loading external files
- Fixed various build server properties
- Fixed output color for
Logger.Info
to beConsole.ForegroundColor
- Fixed naming of
VSTestTasks
- Fixed build script to use VSWhere for locating MSBuild
- Fixed
NuGetPackageResolver
to determineglobalPackagesFolder
from config files - Fixed
Xunit2Settings
to specify framework of console executable - Fixed
DotNetRunSettings
to not quoteApplicationArguments
0.5.3 / 2018-06-12
- Fixed global tool to search build scripts also in current directory
- Fixed generic tasks to not redirect output by default
0.5.2 / 2018-06-11
- Changed build summary to log skipped and absent targets unconditionally
- Added
HttpTasks
andFtpTasks
fornetstandard
target framework - Fixed global tool to simply exit if script execution returns non-zero exit codes
- Fixed global tool to search build scripts only within 2-level non-system sub-directories
- Fixed build summary to treat
NotRun
as a failure
0.5.0 / 2018-06-05
- Changed build scripts to download .NET Core SDK only if local installation is missing or doesn't match expected version
- Added global tool for setup and build invocation
- Added version logging for PowerShell, Bash, NuGet and DotNet
- Added error output for CLT tasks when redirect output is enabled
- Added
[Tool]Tasks.[Tool](string arguments)
for all CLTs - Added support for double-dashed arguments
- Fixed resolution of
Skip
parameter when using separators - Fixed font resource resolution for deprecated namespace
- Fixed saving location of build scripts
0.4.0 / 2018-05-02
- Deprecated
Nuke.Core
namespace. All types have been moved toNuke.Common
- Changed parameter binding to allow lisp-cased arguments (dashes for camel-humps)
- Changed build execution to automatically unwrap
AggregateException
andTargetInvocationException
- Changed build server instances to access variables in non-ensured way
- Changed
GitRepository.FromLocalDirectory
to not return null but fail instead - Changed reference from
NuGet.Client
toNuGet.Packaging
- Changed summary output to use
Trace
,Error
,Success
methods ofLogger
- Added integration infrastructure for ReSharper plugin
- Added typo-checking for arguments that should be bound via
ParameterAttribute
- Added automatic retrieval of
GitRepositoryAttribute.BranchName
from build server instances - Added
Logger.Success
method - Fixed
GitRepository.ParseUrl
to strip username and password - Fixed nullable properties in
TeamServices
andBitrise
- Fixed host simulation
- Fixed environment variable parsing when case-insensitive duplicates are found
0.3.1 / 2018-03-26
- Deprecated
Action
usages inDotCoverTasks
andOpenCoverTasks
in favor ofSetTargetSettings
- Added
ProjectModelTasks
with matchingSolutionAttribute
for auto-injection - Added
[Tool]Tasks.[Tool]Path
property for better accessibility - Added
DotCoverTasks
aliases forcover
,delete
,merge
,report
andzip
- Added
ArrayExtensions
for deconstruction - Changed
NukeBuild.Configuration
to be overridable but still injectable - Fixed
ProcessManager
to resolvetoolPath
from environment - Fixed
ProcessManager
to filter executable based on operating system and file extensions - Fixed
DeleteDirectory
for non-existent sub-directories at time of deletion - Fixed line-endings in setup scripts
0.2.10 / 2018-03-05
- Fixed handling of
Graph
switch - Fixed logging in Nuke.CodeGenerator
- Fixed temporary directory path in setup and bootstrapping scripts
- Fixed
NuGetSettings
to resolve tool path fromNuGet.CommandLine
package - Fixed
Invoke-WebRequest
when InternetExplorer's first-launch configuration was not completed - Fixed resolution of relative paths to be minimal
- Fixed
PathConstruction.GetRelativePath
to work with Unix paths - Fixed argument formatting for boolean values
- Fixed enumeration of modified collection
0.2.0 / 2018-02-26
- Deprecated
Target
parameter in favor of passing targets as first argument to the bootstrapping scripts - Deprecated
NoDeps
parameter in favor of newSkip
parameter that takes a separated list - Deprecated
DefaultSettings
which are now exposed in each task class individually - Changed default values for
AssemblyVersion
to{major}.{minor}.0
andFileVersion
to{major}.{minor}.{patch}
- Added possibility to use
ParameterAttribute
in other injection attributes - Added
GitVersionAttribute.Bump
parameter for bumping major/minor versions - Added
GitVersionAttribute.DisableOnUnix
property since GitVersion is not working consistently - Added
ChangelogTasks.FinalizeChangelog
for finalizing unpublished changes to a certain version - Added
ChangelogTasks.ExtractChangelogSectionNotes
for extracting release data for a specified tag - Added
NukeBuild.InvokedTargets
which exposes targets passed from command-line - Added
NukeBuild.ExecutingTargets
which exposes targets that will be executed - Added
NukeBuild.SkippedTargets
which exposes targets that will be skipped - Added
GitRepository.IsGitHubRepository
extension method - Added
GitRepositoryAttribute.Branch
andGitRepositoryAttribute.Remote
properties for pass-through - Added
build.cmd
in setup for easier invocation on Windows - Added CLT tasks for Git
- Fixed background color in console output