Native IDE support

    Build projects are simple C# console applications - no pre-processing or scripting involved, and part of your solution! That means all the powerful IDE features that we love - like code-completion, refactorings and formatting - will work without any extensions. Targets are defined as expression-bodied properties, so you might want to say good-bye to magic strings! But most importantly, debugging is available just as you know it. There is no more need to debug code by writing output to the console!

    Supports .NET Core, .NET Framework and Mono!

    Extended Tooling

    The .NET ecosystem is just a wonderful place. Although build projects integrate natively into existing tooling, we are not stopping there! A global tool can be installed, that assists with the setup and invocation of builds by a single nuke command. Also extensions for VSCode, Rider and ReSharper are available that enhance the command palette and the Alt-Enter menu to execute build targets in the most convenient way!

    Wonder which tools we support?

    ...

    That's the best part!

    Code-Generation

    Execution APIs for third-party command-line tools are based on data from official references. We're extracing information like argument types, formatting and others into so-called specification files. These files are then processed by a code-generator that generates a rich and consistent fluent API. Official help texts are shown in IntelliSense! And no more need to worry about escaping or separators! Check out our addons for Azure CLI and Docker, which are even automatically updated whenever a new version of the related tool is published.

    What else?

    ...

    A lot more!

    Value Injections

    Fields can be marked with different attributes to get their value injected prior to execution. For instance, [Parameter] retrieves the value from command-line arguments and environment variables with the same name as the field.

    Parameter Injection

    Path Construction

    Absolute and relative paths can be constructed using the / division operator, which will automatically adjust the directory separator to the underlying OS. If required, paths can also be casted to match other platforms.

    Path Construction

    Default Settings

    Common metadata, like solution file or repository url, and best-practice settings, like custom loggers or coverage filters, are automatically loaded into DefaultSettings and can be used to invoke tools more efficiently.

    Adaptive Logging

    Log output is optimized for the best readability. Depending on the current environment the build is running on, target captions will be printed in various figlet fonts or utilize service messages if supported by the CI system.