Giter Site home page Giter Site logo

fluent-build's People

Watchers

 avatar

fluent-build's Issues

Suggested API improvements: IExecuteable

1. Spelling is sort of inconsistent with

class ExecutableFailedException


****

2. IExecuteable.ExecuteAndEnsureCleanExit()

Instead of manually checking the ExitCode from .Execute()'s return, there 
should be a helper method that checks and ENSURES a clean exit...

I was using my build script firing off some Run.Executeable()s with 
.FailOnError and I didn't realize the underlying method (.Execute()) succeeded 
even though the Run.Executeable() failed with a non-zero exit code.

I expected the entire build to fail when the Executeable() failed with a 
non-zero exit code instead of proceeding.

Original issue reported on code.google.com by [email protected] on 25 May 2011 at 2:16

MsSql Script File Support + Enhanced Alternative Support

Hi,

It would be also nice to execute a script file (or build artifact) directly 
from the MsSql API.

Also other third-party DB support for other DB systems would be great.

DbNetData is a good project to start with:
http://dbnetdata.codeplex.com/ 

Thanks,
Brian Chavez

Original issue reported on code.google.com by [email protected] on 26 May 2011 at 10:45

Run.Executable.FailOnError does not fail on non-zero exit code

Run.Executable("psinfo")
   .FailOnError.WithArguments(@"\\unknownServer")
   .Execute()

-------

  [exec] psinfo \\unknownServer
  [exec] PsInfo v1.77 - Local and remote system information viewer
  [exec] Copyright (C) 2001-2009 Mark Russinovich
  [exec] Sysinternals - www.sysinternals.com
  [exec] The network path was not found.
  [exec] The network path was not found.
  [exec] Connecting to unknownServer...Cannot connect to remote registry on unk
         nownServer:
  [exec] Could not connect to unknownServer:

Exit Code: -1 

-------
Note: No exception thrown by FluentBuild.

I never called ".SucceedOnNonZeroErrorCodes()" and the executable still 
succeeded on a non-zero exit code.

FluentBuild should throw an exception if FailOnError == true and ExitCode != 0.

Thanks,
Brian

Original issue reported on code.google.com by [email protected] on 28 Feb 2012 at 10:58

.Files and FolderSets?

Hi,

I'm trying to find a directory given a particular pattern; but there doesn't 
seem to be a way to find Folders, only files.

For example, it seems natural to:

new BuildFolder("./") //current build 
    .Folders
    .Include("**/bin/**")
    .Exclude("**/obj/**")
    .Delete();

I'd like to find all FOLDERS that match a given pattern, then preform an 
operation on them.

However, it seems the FluentBuild API doesn't quite support working with 
folders (not files) exclusively.

Just an idea.

Thanks,
Brian

Original issue reported on code.google.com by [email protected] on 30 May 2011 at 4:28

Additional TeamCity build properties

Hi,

It would be nice to have support for all team city build properties:

Currently only:

BuildNumber
ConfiguraitonName
ProjectName

are only supported.

Full list of build properties are here:

http://confluence.jetbrains.net/display/TCD65/Predefined+Build+Parameters#Predef
inedBuildParameters-ServerBuildProperties

There's more build variables than supported by TeamCityProperties:

TEAMCITY_VERSION
BUILD_VCS_NUMBER

etc.


Workaround:
Create some extension methods for TeamCityProperties object and call 
Environment.GetEnvironmentVariable( "BUILD_VCS_NUMBER" )

Original issue reported on code.google.com by [email protected] on 27 May 2011 at 10:36

Allow method/task execution directly from command line

Instead of having an entire build file default construct tasks; sometimes it's 
necessary to execute tasks out of band/independently like so:

fb.exe BuildFile.cs -m:Task1 -m:Task2

Sometimes I just want to clean, and executing:

fb.exe BuildFile.cs -m:Clean

would be nice.


Original issue reported on code.google.com by [email protected] on 25 May 2011 at 6:41

Using fluent-build as a deployment tool

This is not really an issue, but just wanted to give you some feedback.

I've tried using "dropkick" (https://github.com/chucknorris/dropkick) a fluent 
deployment framework for deploying builds.

However, I ran into a lot of friction: My deployment with "dropkick" got really 
messy & complex. So, I "dropped" it entirely (pun intended). :)


I got a crazy idea and I decided to try and use fluent-build for deployment.

My "deployment"/(BuildFile) is working out quite well. Here's what I did (which 
might give you some suggestions in making it more deployment friendly):




1. Created a console project with a "class WebDeploy : BuildFile" and wrote my 
deployment requirements.

2. Referenced fb.exe & FluentBuild.dll in the above project.

3. Wrote a small DeployRunner wrapper:

***
public static class DeployRunner
{
  public static void Main(string[] args)
  {
    Console.WriteLine( "Continue with deployment?" );

    var ans = Console.ReadLine().ToUpper();
    if( ans.StartsWith("YES"))
    {
      typeof(Program) // FB.EXE's PROGRAM
       .CallMethod( "StartRun", Flags.StaticAnyVisibility,
           new object[]
            {
               Assembly.GetExecutingAssembly(),
               typeof(WebDeploy)
             }
       );
    }
  }
}
***
//NOTICE: I had to do some reflection to Invoke to your "StartRun" method.

4. Compiled & ILMerged all assemblies with my WebDeploy.exe as the main primary 
executable.

... now, all I need to do is copy WebDeploy.exe which contains everything it 
needs to get the latest build from TeamCity, and "install" it on the webserver, 
swapping App_Offline.htm, deleting old files, unzipping the latest build, and 
re-applying ACL permissions.

:)

Perhaps you could set the visibility of Program's StartRun to public to avoid a 
reflective call and be a little more open. :)

Thanks,
Brian

Original issue reported on code.google.com by [email protected] on 30 May 2011 at 12:45

Suggesting RH as your database builder

Very simple api to create databases (https://gist.github.com/977990) that uses 
plain old sql scripts.

Minimum api:
new Migrate().Set(p =>
{
    p.DatabaseName = databaseName;
    p.SqlFilesDirectory = scriptsLocation;
    p.Silent = true;
})
.Run();


More standard:
new Migrate().Set(p =>
{
    p.ConnectionString = connectionString;
    p.SqlFilesDirectory = scriptsLocation;
    p.EnvironmentName = environmentName;
    p.Drop = dropDatabase;
    p.RecoveryModeSimple = useSimpleRecoveryMode;
    p.Restore = restore;
    p.RestoreFromPath = restorePath;
    p.RepositoryPath = repositoryPath;
    p.VersionFile = versionFile;
    p.VersionXPath = versionXPath;
    p.Silent = true;
})
.Run();

I am porting the documentation to https://github.com/chucknorris/roundhouse/wiki

You can also just call the tool which is a simple executable.

Original issue reported on code.google.com by [email protected] on 16 Jun 2011 at 1:40

Only useful for pet projects

I've just tried out FluentBuild and don't think it's quite ready for public 
consumption just yet. As I've not been approved for the mailing list despite 
waiting for a day or so, here are my comments from trying out the tool.

My requirements:
- I have a very simple project that includes a single primary output assembly 
and a unit test assembly. 
- I need to cross-compile for multiple framework versions.

Problems encountered:
- there was no unit test runner for the MS test framework.
- there was no .NET 4.5 compilation target.
- target is configured statically, so need to set it all the time (before 
compiling and executing tests).
- no support code for compiling same project using multiple frameworks; all the 
code to put output files into separate folders, reference the correct version 
during compilation of test assembly, has to be hand-rolled.
- no support for defining compilation symbols.

My general experience with the tool:
- despite using a fluent syntax it doesn't feel very fluent. In particular, 
there is no task composition. The Bounce framework was much more elegant in 
this regard. Bounce appears to be abandoned but is in a working state and the 
developer is responsive to email; I'd suggest to get in touch.
- the API is painfully stripped; it really only provides access to the most 
important bits, as if it was hand-rolled for some specific task, instead of 
being a generally useful framework.
- there is a lack of custom tasks for doing whatever people need to do, such as 
creating NuGet packages, web sites, etc.
- the documentation is terse (aka lacking) and the sample code does not compile.

To conclude:
- this certainly does not fit my requirements for a build tool.
- the version number should be 0.5, not 1.2.
- it would do the project well to state the limitations of the tool (in its 
current form) prominently on the front page, so as to warn people that it is 
not anywhere near the functionality available in the products mentioned on the 
"why FluentBuild" wiki page.

Best of luck with it - I continue to think that C# is a fine language for build 
scripts, and please don't hate me for speaking my mind!

...running off to try out the next build tool candidate.


Original issue reported on code.google.com by [email protected] on 26 Sep 2012 at 9:43

Allow exes to be be specified as compiled tasks

FB.EXE::CommandLineParser should allow .exe as a valid compiled resource for 
build tasks.

Technically, there's really no difference between .exe and .dll. I have some 
build tasks specified in an .EXE that I'd like to use -- but the command line 
parser tries to compile the already compiled .EXE.

Original issue reported on code.google.com by [email protected] on 29 Feb 2012 at 12:19

Allow additional support [assembly: Attribute] support

Hi, the following list are all the standard .net assembly attributes:


AssemblyCompany
AssemblyCopyright
AssemblyCulture
AssemblyDelaySign
AssemblyDescription
AssemblyFileVersion
AssemblyInformationalVersion
AssemblyKeyFile
AssemblyKeyName
AssemblyProduct
AssemblyTitle
AssemblyTrademark
AssemblyVersion


I don't see anyway to currently add "AssemblyInformationalVersion".  Would be 
nice if there was extra support for this in 
AssemblyInfo.Language.CSharp.InformationalVersion("My version")

Standard assembly attributes are listed in "Table 1" here:

http://msdn.microsoft.com/en-us/library/ms973231.aspx


Also, it would be nice to allow "InternalsVisibleTo" as well; perhaps, you 
could have a more generic "Add" like:

AssemblyInfo.Language.CSharp.AddCustomAttribute(new InternalsVisibleTo("foo"))

Thanks,
Brian

Original issue reported on code.google.com by [email protected] on 26 May 2011 at 2:15

fb.exe not processing combiled build dlls

What steps will reproduce the problem?
1. Create a BuildFile
2. Compile the BuildFile into a dll.
3. Execute it with fb.exe mybuildfile.dll

What is the expected output? What do you see instead?
* Expected to execute the Default build class in mybuildfile.dll

Instead:
* It keeps coming back saying:
 [INIT] building task from sources

* This is likely due to a bug in CommandLineParser.ctor(string[]) where:

if (Path.GetExtension(args[0]).ToLower() != "dll")

Path.GetExtension() returns the ".dll" period. So, the line of code above is 
always true. Therefore, never executing ".dll" compiled build files.

Plz fix. :)


What version of the product are you using? On what operating system?
* 1.0 Beta

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 25 May 2011 at 6:30

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.