Giter VIP home page Giter VIP logo

dut3062796s / flubucore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dotnetcore/flubucore

0.0 2.0 0.0 101.61 MB

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

Home Page: https://flubucore.dotnetcore.xyz/

License: MIT License

C# 99.02% HTML 0.59% CSS 0.14% PowerShell 0.24% Batchfile 0.01% JavaScript 0.01%

flubucore's Introduction

English | δΈ­ζ–‡

FlubuCore

Travis NuGet Badge Gitter Twitter Member project of .NET Core Community License

"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 in action

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:

  • FlubuCore runner flubu.exe Default
  • FlubuCore dotnet cli tool dotnet flubu Default
  • FlubuCore global tool flubu Default

Features and Advantages

  • Intuitive an easy to learn. C#, fluent interface, and IntelliSense make even most complex script creation a breeze.
context.CreateTarget("Example")
  .DependsOn(fetchBuildVersionTarget)
  .AddTask(x => x.CompileSolutionTask())
  .AddTask(x => x.PublishNuGetPackageTask("packageId", "pathToNuspec"))
      .When(c => c.BuildSystems().Jenkins().IsRunningOnJenkins);
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("MyCustomBuildTarget")
     .AddTask(x => x.CompileSolutionTask())
     .Do(MyCustomMethod)
     .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("sn", "If true app is deployed on second node. Otherwise not.")]
   public bool deployOnSecondNode { get; set; }


    protected override void ConfigureTargets(ITaskContext context)
    {
        context.CreateTarget("compile")
           .AddTask(x => x.CompileSolutionTask()
               .ForMember(y => y.SolutionFileName("someSolution.sln"), "solution", "The solution to build.")); 
    }
 }
 flubu.exe compile -solution=someOtherSolution.sln -sn=true

FlubuCore interactive mode

FlubuCore analyzers in action

Getting Started

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.

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:

Examples

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:

Have a question?

Join the chat at https://gitter.im/FlubuCore/Lobby

Contributing

Please see CONTRIBUTING.md.

Ways to Contribute

  • Spread the word about the project.
  • If you like the project don't forget to give it a star so that the community get's bigger.
  • Improve documentation.
  • Report, fix a bug.
  • Implement a new feature.
  • Discuss potential ways to improve project.
  • Improve existing implementation, performance, etc.

Changelog and Roadmap

Changes with description and examples can be found in Changelog

You can see FlubuCore roadmap by exploring opened Milestones.

Used & Powered by

Thank's to Comtrade for supporting us.

FlubuCore analyzers in action

Acknowledgements

  • Special thanks to @ironcev for greatly improving readme and for giving some valuable advices.
  • Special thanks to @alexinea for translating whole documentation to Chinese.

flubucore's People

Contributors

mzorec avatar zoroz avatar kevinlang2 avatar alexinea avatar jenzy avatar ironcev avatar 0xflotus avatar issafram avatar meir017 avatar yang-xiaodong avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.