1

I am new to the whole CI process and have been tasked with researching a solution. So this may sound like a dumb question to some...

So, I have been looking at Team City (Pro version) and was wondering if it was necessary to set up separate build agents based on the target environment.

Our application portfolio includes some legacy web apps that run on a Windows Server 2003 box. Newer more recently developed web apps run on Windows Server 2008 R2. Naturally we have separate test boxes for each environment.

Should I set up a build agent for each server o/s? (i.e. one for 2003 and for 2008). I guess it would make sense to seeing as the build output should be production release ready.

EDIT: Developing .NET apps

wal
  • 17,409
  • 8
  • 74
  • 109
empo
  • 1,133
  • 5
  • 21
  • 41
  • is this .NET or Java? if yes then it doesnt matter which OS the build is performed on, ie you would have a single build agent – wal Aug 01 '12 at 15:11
  • I have updated my question but yes we are developing .NET apps – empo Aug 01 '12 at 15:23

1 Answers1

2

If all your apps runs on .NET then it doesnt matter which machine they will be compiled on. (assuming the .net framework you are targetting runs on both 2003 and 2008)

So in your case I would have one build agent running on 2008 that would produce builds for ALL of your environments.

The purpose of multi build agents is to distribute your builds over multiple machines which can be very useful if you have many products and frequent checkins. For a simple initial setup it is fine to have 1 build agent.

Now, as part of the build/deployment process you could have your build agent DEPLOY the builds to both 2003 and 2008 machines. TC is not intended for deployment but it still can be used to deploy builds quite easily if all the machines are on the same LAN.

wal
  • 17,409
  • 8
  • 74
  • 109
  • Interesting...what prompted me to ask my question in the first place was that I read somewhere else that the server the build is done on should mimic the production server. Also, I did fail to mention earlier that on the 2003 server there is one app running on .NET 3.5 and one on the same box running .NET 4 – empo Aug 01 '12 at 16:12
  • ` I read somewhere else that the server the build is done on should mimic the production server` <-- where did you read that? With .NET it should not matter. Running your test machines with the same OS as the production server WILL matter so keep that the same. regarding your .net3.5 and .net4 issue, again, if the build server/build agent has both installed then it will be able to compile source code that target both runtimes so it wont matter. my recommendation would be to run your build agent on 1) the faster PC 2) the more modern OS – wal Aug 01 '12 at 16:21
  • http://martinfowler.com/articles/continuousIntegration.html#TestInACloneOfTheProductionEnvironment – empo Aug 02 '12 at 08:22
  • thanks, that a good read but theres nothing in there about building/compiling on the same OS as your production machine. I believe you're already doing what it says there, ie a clone of your production environment in your testing environment. – wal Aug 02 '12 at 13:21