anantlabs / fluent-build Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/fluent-build
Automatically exported from code.google.com/p/fluent-build
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
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
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
Path.GetExtension() includes the period "." in .dll not "dll"
Original issue reported on code.google.com by [email protected]
on 25 May 2011 at 6:33
Attachments:
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
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
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
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
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
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
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
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.