Build Automation
I've been continuing to work on build automation, because I've also been asked to refactor the package/bundle structure we use here (in order to create a cleaner separation between the various deliverables we produce out of the codebase).
I've talked about the tools I've built for this before; what I did more recently was take the GUI focused tool I built and made it scriptable. So instead of a few menu picks, listbox selections and button presses, it's now more like this:
BuildTool generateFor: logicalName useSmartBundle: aBoolean version: versionString startWithImage: imageName
And that can be fired off via a batch file (this is Windows) - and that in turn could be automated via higher level tools - maybe I'll start investigating something like Hudson. It's coming together pretty nicely, and I can now kick off a complete build, starting from a base visual.im, and within 15 minutes have a development image and a runtime, ready to go.
Comments
Re: Build Automation
[Tom K] March 8, 2011 10:58:47.081
I'm doing similar kinds of things with VA Smalltalk. It was a great help during our recent migration to a newer version of the product, as I was building both packaged and development images, all being triggered by Hudson (now Jenkins). You'll run into some fun once you decide to create a dedicated Jenkins box. Since you'll need to have Jenkins running as a service, you'll have to have it running as an account with network access. It gets even better if you have to trigger builds on other machines, such as Unix boxes.
Re: Build Automation
[Henry] March 10, 2011 18:46:02.749
Don't forget having tests automatically run/reported :)
Lukas' build tools contain an implementation of outputting to Junit xml you might find useful:
(In Pharo)
Gofer new
renggli: 'hudson';
package: 'HudsonBuildTools';
load.