A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/dotnetcore/FlubuCore below:

dotnetcore/FlubuCore: A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.

English | 中文

"FlubuCore - Fluent Builder Core" is a cross platform build and deployment automation system. You can define your build and deployment scripts in C# using an intuitive fluent interface. This gives you code completion, IntelliSense, debugging, FlubuCore custom analyzers, and native access to the whole .NET ecosystem inside of your scripts.

FlubuCore offers a .net (core) console application that uses power of roslyn to compile and execute scripts. Above example can be run from console with:

    [FromArg("nugetKey", "Nuget api key for publishing Flubu nuget packages.")]
    public string NugetApiKey { get; set; }

    protected override void ConfigureTargets(ITaskContext context)
    {
        var pack = context.CreateTarget("Pack")
            .SetDescription("Prepare's nuget package.")
            .AddCoreTask(x => x.Pack()
                .NoBuild()
                .OutputDirectory(OutputDirectory)
                .WithArguments("--force")); //you can add your own custom arguments on each task

        var branch = context.BuildSystems().Travis().Branch;
       
        var nugetPush = context.CreateTarget("Nuget.publish")
            .SetDescription("Publishes nuget package.")
            .DependsOn(pack)
            .AddCoreTask(x => x.NugetPush($"{OutputDirectory}/NetCoreOpenSource.nupkg")
                .ServerUrl("https://www.nuget.org/api/v2/package")
                .ApiKey(NugetApiKey)
            )
            .When(c => c.BuildSystems().RunningOn == BuildSystemType.TravisCI
                        && !string.IsNullOrEmpty(branch)
                        && branch.EndsWith("stable", StringComparison.OrdinalIgnoreCase));
    }
context.CreateTarget("build")
   .AddTask(x => x.GitVersionTask())
   .AddTask(x => x.CompileSolutionTask("MySolution.sln").BuildConfiguration("Release");

context.CreateTarget("run.tests")
   .AddTask(x => x.XunitTaskByProjectName("MyProject").StopOnFail())
   .AddTask(x => x.NUnitTask(NunitCmdOptions.V3, "MyProject2").ExcludeCategory("Linux"))
   .AddCoreTask(x => x.CoverletTask("MyProject.dll"));
context.CreateTarget("DoExample")
        .Do(c =>
        {
            // write your awesome code.
            File.Copy("NotSoAwesome.txt", Path.Combine(OutputDirectory, "JustAnExample.txt") );
            // Access flubu built in tasks in DO if needed.
            c.Tasks().GenerateT4Template("example.TT").Execute(c);                
        })
        .AddTask(x => x.CompileSolutionTask())
        .Do(NuGetPackageReferencingExample);
[NugetPackage("Newtonsoft.json", "11.0.2")]
[Assembly(".\Lib\EntityFramework.dll")]
public class BuildScript : DefaultBuildScript
{
   public void NuGetPackageReferencingExample(ITaskContext context)
    {
        JsonConvert.SerializeObject("Example");
    }
}
context.CreateTarget("Run.Libz")
    .AddTask(x => x.RunProgramTask(@"packages\LibZ.Tool\1.2.0\tools\libz.exe")
        .WorkingFolder(@".\src")
        .WithArguments("add")
        .WithArguments("--libz", "Assemblies.libz"));
public class SimpleScript : DefaultBuildScript
{
   [FromArg("c", "The configuration to use for building the project.")]
   public string Configuration { get; set; } = "Release"
 
   [FromArg("sn", "If true app is deployed on second node. Otherwise not.")]
   public bool deployOnSecondNode { get; set; }

   protected override void ConfigureTargets(ITaskContext context)
   {
        context.CreateTarget("build")
           .AddCoreTask(x => x.Build()
               .Configuration(Configuration)
               .ForMember(x =>  x.Framework("net462"), "f", "The target framework to build for.")); 
   }
}
 flubu build -c=Debug -f=netcoreapp2.0

Using FlubuCore is straightforward and very simple :-) It is also fully and throughly documented.

The Getting Started chapter in FlubuCore Documentation will help you set up your first FlubuCore build in no time. You should also check getting started blog. It has some more details with some nice tips and tricks.

A comprehensive list of features that FlubuCore has to offer with descriptions can be found in the Build Script Fundamentals chapter.

Once you have your build and deployment scripts defined, the following Wiki chapters will explain how to run them:

Aside from the detailed Wiki FlubuCore comes with example projects that reflect real-life situations. The examples can be found in the separate Examples repository.

These examples will help you to get quickly start with FlubuCore:

Please see CONTRIBUTING.md.

Changes with description and examples can be found in Changelog

You can see FlubuCore roadmap by exploring opened Milestones.

If you find FlubuCore useful (you feel it helps you on the daily basis) you can support further development by buying us a coffee (or become a backer or sponsor). Sometimes it's hard to stay awake till midnight implementing new features, coffee helps us with that. We would really appreciate your support. Money from sponsorship will also be used for the promotion of the project. If you are a backer or a sponsor you can also request for a new feature or ask for support. These issues will be handled with highest priority.

Thank's to Comtrade for supporting us.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

This project is supported by the .NET Foundation.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4