FlubuCore v3.0.0.0 Release Notes

    • ๐Ÿ— Resolve nuget packages from build script csproj file automatically. No need for directives in build scripts anymore when executing script that is in project. For standalone scripts you still need directives.
    • ๐Ÿ— Load referenced libraries from build csproj file automatically. No need for directives in build scripts anymore when executing script that is in project. For standalone scripts you still need directives.
    • All nuget dependencies are loaded automatically.
    • โž• Added GitVersionTask: GitVersion is a tool to help you achieve Semantic Versioning on your project. Documentation
      context.CreateTarget("Example")
             .AddTask(x => x.GitVersionTask());
    
    • ๐Ÿ— Automatic load of build script partial classes. Partial classes have to be in same directory as build script.
    • โšก๏ธ Automatic update of FlubuCore web api to new version. Just navigate to /UpdateCenter
    • โž• Added small web app to FlubuCore web api for executing scripts. Navigate to /Script
    • Pass console and config arguments to targets defined with attribute C# [Target("ExampleTarget", "Default string")] [Target("ExampleTarget2", "Default2 string")] public void Example(ITarget target, [FromArg("e")]string Example) { target.Do(x => { x.LogInfo(boo }); }

    dotnet flubu ExampleTarget -e=Hello

    or

    dotnet flubu ExampleTarget -Example=Hello

    • load assembly references, nuget references through script class attributes. Alternative to directives.
    [Assembly(@".\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll")]
    [NugetPackage("Newtonsoftjson", "11.0.2")]
    [Reference("System.Xml.XmlDocument, System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089")]
    public class BuildScript : DefaultBuildScript
    {
    }
    
    • โž• Added Must method to target fluent interface. Condition in must will have to be meet otherwise target execution will fail before any task get executed.

    • Option to execute custom code before each target execution(target dependencies are excluded). Just override following methods:

     protected override void BeforeTargetExecution(ITaskContext context)
      {
      }
    
      protected override void AfterTargetExecution(ITaskContext context)
      {
      }
    
    • ๐ŸŒฒ Colored console logging
      public void Example(ITaskContext context)
        {
            context.LogInfo("Some text", ConsoleColor.DarkGray, ConsoleColor.DarkMagenta);
            context.LogInfo("Some Text2", ConsoleColor.Blue);
            context.LogError("Error", ConsoleColor.Blue);
        }
    
    • FetchVersionFromExternalSourceTask now supports following build systems : Bamboo, Bitrise, ContinousCl, Jenkins, TFS, TeamCity, TravisCI.

      • ๐Ÿ‘ CompileSolutionTask: support for VS2019
      • ๐Ÿ“ฆ Restoring of nuget packages has fallback to msbuild now if dotnet core sdk is not installed
      • ๐Ÿ†• New Config attribute: Disable load of script references from csproj
      • ๐Ÿ†• New Config Attribute: Always recompile build script
      • ๐Ÿ”ฆ Expose the output of ExternalProcessTaskBase
      • ๐Ÿ›  Fix: Specifing flubu script path in config file does not work
      • ๐Ÿ›  Fix: BuildScript assembly is not recompiled when included cs files are changed
      • ๐Ÿ›  Fix: Added interactive method to task fluent interface.
      • ๐Ÿ›  Fixed switched capture output and capture error output
      • ๐Ÿ›  Fixed GetRemoveFileTask base methods (null reference exception)
      • ๐Ÿ›  Fixed GitPushFileTask base methods (null reference excetpion).
      • ๐Ÿ›  Fixed GitAddTask base methods (null reference excetpion).
      • External process task return type is now generic
      • ๐Ÿ”ง script key is now case insensitive in file configuration.
      • switched from Microsoft.Extensions.CommandLineUtils to McMaster.Extensions.CommadLineUtils
      • Minor visual improvements when displaying help.
      • โž• Added Net462 Web api deploy package for x86
      • โž• Added some more default build script locations.