All Versions
34
Latest Version
Avg Release Cycle
53 days
Latest Release
1633 days ago

Changelog History
Page 2

  • v3.1.2.0 Changes

    • ๐Ÿ›  Fixes Must on target fluent interface.
    • ๐Ÿ›  Fixes script when using partial classes. Script failed in some scenarios.
    • script allows includes of other cs files in partial classes.
    • ๐ŸŒฒ System.Drawing.Primitives assembly reference doesn't need to be referenced exlicitly anymore in script uses collored logging (issue was only present when target .net core framework)
    • ๐Ÿ‘Œ Improved some script error messages.
  • v3.1.1.0 Changes

    • ๐Ÿ›  Fixes loading of nuget packages that don't have target framework specified.
    • FetchBuildVersionFromFileTask: Improves fetching of version from file by allowing version to be in any line not just first.
    • 0๏ธโƒฃ FetchBuildVersionFromFileTask: Adds default project version file locations.
    • ๐Ÿšš FetchBuildVersionFromFileTask: Adds option to remove prefix from version.
    • FetchBuildVersionFromFileTask: Adds option to allow any suffix.
    • ๐Ÿ‘Œ Improves error messages when cs files that are used in script are not included.
    • ๐Ÿ‘Œ Improves error messages when script assembly references are not loaded.
    • โž• Added Null and empty target name validation.
  • v3.1.0.0 Changes

    • โž• Added IncludeFromDirectoryAttribute: Attribute adds all .cs files from specified directory. With second optional parameter you can include subdirectories.
    [IncludeFromDirectory(@".\Helpers")]
    public class BuildScript : DefaultBuildScript
    {
    }
    
    • AssemblyFromDirectoryAttribute: When added on script class FlubuCore should add all assemblies from specified directory to script.
        [AssemblyFromDirectory(@".\Lib")]
        public class BuildScript : DefaultBuildScript
        {
        }
    
    • Load base script class automatically. Must be in same directory as script.
    • Improved collored console logging by wrapping strings of the output in ANSI codes that instruct the terminal to color the string based on the interpreted code.
    • Allow namespaces in included cs files. Executing script does not fail anymore if included cs file contain namespace.
    • Disable collored logging with attribute or script argument.
  • v3.0.2.0 Changes

    • ๐Ÿ›  Fixed attribute "directives"
  • v3.0.1.0 Changes

    • ๐Ÿ›  Fixes restoring and loading of nuget packages with old csproj
    • ๐Ÿ’… Stylecop nuget packages are not loaded anymore
    • ๐Ÿ— build status is now logged with color.
    • Target and task information is now logged with color.
  • v3.0.0.0 Changes

    • ๐Ÿ— 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.
  • v2.14.0 Changes

    January 07, 2019
    • โž• Add support for interactive task members.

    Example:

        protected override void ConfigureTargets(ITaskContext context)
        {
             context.CreateTarget("Example")
                    .AddTask(x => x.CompileSolutionTask()
                        .Interactive(m => m.BuildConfiguration("default value if interactive mode disabled or value is 
                         passed as argument."), consoleText: "Enter build configuration:"));
    
            context.CreateTarget("Example2")
                .SetAsDefault()
                .Do(Example2, 
                     "default value if interactive mode disabled or value is passed as argument", 
                      options => { options.Interactive(m => m.Param, "-test", consoleText: "Enter example value to print to console:"); });
        }
    
        private static void Example2(ITaskContext context, string value)
        {
            context.LogInfo($"Entered: {value}");
        }
    

    ๐Ÿ–จ If u run target Example2 from console u will be prompted by Flubu to enter value which will be then printed to console.

    • ๐Ÿ‘ Flubu now supports cleanup actions when hitting control + c.. If u want that cleanup actions are performed You have to explicitly set parameter in task Finally method or in group parameter.

    Bellow is example in which FlubuCore performs specified cleanup actions when hitting control + c or control + break (two optional parameters with true value are added)

     context.CreateTarget("run.postgres")
            .SetAsDefault()
            .Group(
                target =>
                {
                    target
                        .AddTaskAsync(task =>
                            task
                                .DockerTasks()
                                .Run("postgres:10.5", string.Empty)
                                .Finally(innerContext => innerContext.LogInfo("Testing1"), true));
                }, innerContext => { innerContext.LogInfo("Testing2"); },
                cleanUpOnCancel: true);  
    
    • ๐Ÿ‘Œ Improves logging on web api client tasks.
    • ๐Ÿšš (Possible breaking change)Removed obsolete methods from some tasks
    • โž• Adds option to set destination package folder in CreateZipPackageFromProjcet tasks. Currently only default destination folder could be used.
  • v2.13.0

    November 26, 2018
  • v2.13.0.0 Changes

    • โž• Added docker generated tasks
    • ๐Ÿณ (Breaking changes) Old Docker task's that were previously manually implemented were overwriten with generated task.
      • Docker tasks that used property of type List<> were replaced with params.
      • Some method names in docker tasks were renamed to the same name as it is option name in the docker command.
    • ๐Ÿ‘Œ Improved target fluent interface intelisense by adding methods from base interface.
    • ๐Ÿ‘ท GitBranch information can be readed for jenkins build system. context.BuildSystems().Jenkins().GitBranch;
    • WebApi increased max size limit of uploaded content
  • v2.12.9

    October 25, 2018