Using FinalBuilder for Continuous Integration

Greetings.

I have used FinalBuilder for automating our deployment process, but now I would actually like to use it for implementing continuous integration.

Currently- all our developers compile their own code locally, test locally, and then when they feel it is ready- push it to our development server (manually). I would like to use FinalBuilder to do those things- from source.

We are an ASP- and our codebase is extremely large. When we do deployments- we only move changed code (it would be impossible to move the entire codebase). We are entirely windows based and almost all of our code falls into these categories:
VB6
VB.NET (1.1, 2.0, 3.5)
ASP.NET
Classic ASP and HTML and javascript
SQL Server 2005
MSMQ

I guess I am looking for examples of how to implement CI for all of these pieces. Some specific questions are:

for compiled apps- how do I determine which compiler to use? My thought is that devs would check in as often as they want, but when they want the code built- they would add a label. The label would be the trigger for the CI server to execute a build. Could I use a config file for every project- that lists what compiler to use for that project?

Also- I am wondering about CI in general. Would I only use it for compiled code? I am thinking that for the deployment step (for the dev environment for example) I would use our Issue tracking system to trigger the deployment. For compiled code- the install path (where the binaries reside on the file system) can be stored in the config file. But what about for web code? We have 10s of thousands of web pages. I don't want to associate a config file for each one. I suppose I can associate the root of the web repository with the root folder on the file system. Another problem is SQL. We currently script out all of the database changes. Right now- those scripts are not stored in source, but rather in the location for all the deployment scripts. The database schema's ARE stored in source. My thought was to begin requiring that the devs check their SQL scripts in also (possibly stored in a repository folder that was the issue number their change is for). These could get executed on the target SQL platform when deployment occurs (again managed via the issue tracking tool).

Anyone have any experience with this?

Any feedback (that isn't a sales pitch) is welcome- and thanks in advance.

Owen

Hi Owen


Most CI systems trigger as a result of source code changes.. I don't know of any (there may well be one though) that triggers when new labels are created. As for knowing which projects to build with which compiler, that would be configured in your FinalBuilder script just as it is now... you can have mulitple triggers looking at different part of your source code repository, and each trigger can trigger different FB projects, or the same project with differing parameters.

My advice would be to start out simple, don't try to do it all in one go, especially if you are going to be mandating process changes as a result of implementing CI.

HTH