Fog Creek Software
Discussion Board




Automated build system

I work for a company that builds shrinkwrapped software for the fitness industry.  Right now our build process is entirely manual and it is cumbersome and error prone.  We need to build help files, vb projects, and installshield projects from source control each time.  Who out there uses an automated build solution?  What are some resources I can use to do research?  What are some products or open source solutions people use in the real world?  (I know you can just do a batch file - I am looking for a little more than that here)?

Scott Suchomel
Wednesday, August 27, 2003

A batch file, shell script or make target has a few nice things going for it:
It's cheap (you already have the tools to write it).
It's easy (I presume you know how to write stuff in your batch language of choice)
It can be very quick to get a limited solution up and running and saving you time.

The downside is that updates are a bugger, the scripts tend to collect cruft over time, and if you aren't careful with your error checking, you can miss partial build failures.

If you are going from nothing, I recommend starting with a simple batch file or shell script - it gets you going in the right direction. After a little bit of time using a script, you'll see it's limits and have a better idea of what you want in a better tool.

Michael Kohne
Wednesday, August 27, 2003

I use (and like a lot) FinalBuilder, from http://www.atozed.com. It's a great product, and very flexible.

Tim Sullivan
Wednesday, August 27, 2003

I'd second the recomendation about FinalBuilder.

Our hold build process 50 + components and 3 seperate installs now takes 1 click and 30 minutes.

It is a great product and the proce is reasonable.

Best of luck.

Eric Budd
Wednesday, August 27, 2003

http://nant.sourceforge.net/

Just me (Sir to you)
Wednesday, August 27, 2003

I've had good luck so far with Apache Ant ( http://ant.apache.org ) -- free, multi-platform, integrates with lots of popular source-control systems.

John C.
Wednesday, August 27, 2003

Give scons a try [ http://scons.sourceforge.net ]. Even though it has not yet reached the 1.0 mark, it is very stable, and very capable, albeit a bit slow.

It doesn't have a GUI, but if you can manage a textual configuration file, it will probably be able to fill your needs; It's better thought out IMHO than any other make tool I've looked at.

Ori Berger
Wednesday, August 27, 2003

I did it at my company with a Perl script.  Maybe that wasn't the most efficient way, but it really wasn't that hard.  We had to get files from source control, sync and build on two platforms (Windows and Solaris), update version number, build installations, move results to output directory, email results, etc.

It ended up not really being that much code.

While it will take someone a week or two to put it together (less maybe), it's time well spent.

David
Wednesday, August 27, 2003

I'll second Michael's recommendation to stick with something simple such as a batch file, WSH script, or make file. 

The big advantage is that these things are always there.  You don't have to license or install something to get them working (of course, for make files, this assumes the development environment you use comes with a make utility). 

Because these files are plain text, you can do searches and differences on them easily.  They're in a form that's more suitable to a programmer than the GUI alternatives (do you really want to create a 'for' loop using a GUI rather than just typing it in?). 

I personally favor batch files.  They're more powerful than you might think and include things like a 'for' loop that can iterate through directory contents (type "help for" at a command prompt for more info).  I'd recommend picking up the book Windows NT Shell Scripting by Tim Hill for a decent overview of the NT batch language.  If you need some more advance capabilities (for example, updating a version number in a resource file), you can create an EXE or WSH script that gets called from the batch file. 

SomeBody
Wednesday, August 27, 2003

I've recently switched to using anthill and have been very happy with it: http://www.urbancode.com/projects/anthill/default.jsp

They have an open source and commercial version.  The open source one meets all of my needs.

Oren Miller
Wednesday, August 27, 2003

Anyone ever used Visual Build Pro (Kinook Software)?

We are looking for a similar solution and I was going to try it out:

http://www.kinook.com/index.html

Wayne
Wednesday, August 27, 2003

I have done automated builds in that environment.  Ant is a poor soultion in a VB environment because it will require either creation alot of execution statements or have to write a java class add in to run VB or VB.net and InstallShield.  NAnt is Okay if you are in .Net land other wise if you are running VB6 then it is like its cousin Ant, some extendsion required. 

If you want a out of the box build solution Kinook Software is the way I would go (about $300 the last time I priced it though).  Or you could script it using WSH(VBScript or JScript) or use your favorite scripting language.  I have written build systems in JScript PERL and batch files to do what you want and it is not much work (In any system). A sister project used Python with good success.  Depends on time and money constrants which way you go. In this case time is about the same but money would be an issue with Kinook Visual. 

Also there was a VisualMake product for VB6 projects:
http://www.mobi-sys.com/products.htm
pricing is about $ 200 for single user and $500 for 4 users.

I have looked at Make and Make like products as well and they can be ugly to support for VB.  But it can be done and is also free or cheap.

Over all I would use a WSH script (Visual Studio has an event model that can be help full). 

A Software Build Guy
Wednesday, August 27, 2003

I will fully engage my brain and run my posts through an editor before I post next time.  I believe what I have here is comprehendible so I will leave it to that any questions I will be happy to answer…

A Software Build Guy
Wednesday, August 27, 2003

If only my I had a decent grammar editor between my ears I would be doing fine… 

My last message should be…
I will fully engage my brain and run my posts through an editor before I post next time.  I believe what I have stated here is comprehendible so I will leave corrections be for now.  If you have any questions I will be happy to answer them…

A Software Build Guy
Wednesday, August 27, 2003

We love Visual Build. We have created a script to:

1. Get the latest version of everything from Source Safe
2. Compile the app
3. Compile the help
4. Compile the setup program
5. Make a "CD image" folder with uncompressed setup files
6. Make a "Download" folder with a self-extracting EXE setup
7. Copy the CD image (on a separate machine, with a separate script).
8. Install the app

Works like a champ, twice a day, every day.

Dave
Wednesday, August 27, 2003

Anybody used Jam (from Perforce, or Boost BJam)?
It seems very powerfull, but the language is quite hm- complex.

Hairy Monkey
Thursday, August 28, 2003

We use Jakarta ANT to do all tasks, such as compilation, deployment, documentation, installations, etc.

Evgeny Gesin /Javadesk/
Thursday, August 28, 2003

I created a C# app that used the available COM objects for our Source Control System (StarTeam) and the .NET objects for Visual Studio to automatically check out, change version resources, build, check in, and make new labels. Took me about 4 days to build.

That said, for us it was better to make our own tool since we want our developers to learn C#, so doing it as a learning experience also helped justify the time. If you're wanting to learn the scripting/.NET objects/whatever language, go ahead and roll your own.

However, if you're looking for the most cost effective (and you're using standard tools everywhere else), use the above mentioned products.

Nick Lassonde
Thursday, August 28, 2003

*  Recent Topics

*  Fog Creek Home