BooBS Sample
Here is the first such script that I am going to use:
import Boobs.IO.Extensions
import Boobs.Compiler.Extensions
Task "default", ["build"]
Task "build", ["clean"]:
MsBuild("MyApp.sln").Execute()
Task "clean":
MsBuild("MyApp.sln", "/target:clean").Execute()
Svn "ContiniousIntegration":
SvnUpdate
Execute("default")
Note that this is probably incredibly primitive consider what rake can do, but it amuses me to be able to do this.
The commands are probably even more fun:
Tools\BooBuildSystem\boobs -f:default.boobs -t:ContiniousIntegration
The Svn task will only be run if the repository is more recent than the working copy, so this is something that makes it very easy to build CI scripts. In this case I need to do something a distributed deployment on commit, and while I can probably do this using CC.Net, I am not really fond of the anticipated pain (configuring permissions alone would be a PITA, I imagine) and the executable XML.
This is far simpler, if more primitive.
As an aside, I am getting addicted to parenthesis-less method calls.
Comments
I hate to be "that guy", but heck, with a name like that I can't really try to sell it as a replacement (for NAnt.)
Adam,
No argument about that :-)
That is not my name, though.
Call it BBUS, if it sounds better.
Can I float the idea of calling it Bake (Boo - make).
We could switch from quips about mammary glands to getting the munchies and 4:20 references.
Whenever talking about it to higher level people, just refer to it as the Boo Build System. No harm done :-)
I suggested earlier and elsewhere that this project merges with BooDoo. If that happens, I think BooDoo can be used as the name.
More practically, though, the current state of the DSL is a leaky abstraction: I don't care that BooBS uses strings for task names and string lists for dependencies; I want to write a pure DSL declaration, like this:
task build (clean):
MsBuild "MyApp.sln"
It shouldn't be too hard to make BooBS use ReferenceExpressions for tasks, rather than strings. This would also automagically gain you the power of intellisensing task names.
In all seriousness, "BooBS" will make it difficult for enterprises to stomach. A less controversial name would help. Maybe "BooBuild", though the earlier recommendation, "Bake" is even better (reminiscent of Ruby's "rake").
Avish, absolutely!
Bake would be great because of the rake similarity, but i think that Bake already exists.
And i agree that this name can be a problem, if the uses catch. Maybe BooBuild !!
I have a little side project I just started up that needs some build automation so I am looking into using BooBS.
Grabbed the source from the google code site.
Try 1: Try to load the BooBS solution in VS.Net - failed.
.booproj could not be found
Try 2: Try letting boobs build itself.
C:\projects\boobs>.\bin\boobs
Boo Build System - version 0.2
Running buildfile: C:\projects\boobs\boobsfile
default:
build:
init build dir:
build boobs:
build engine:
The system cannot find the file specified
Try 3: Download SharpDevelop IDE to build BooBS. - worked
However, BooBS still could not build itself.
The sample works with BooBS that I built with SharpDevelop. Now if I only knew Boo I could write code for tasks.
Comment preview