views:

78

answers:

2

I've never worked on tremendously huge projects and the workflow we use at work is check-out/code/compile locally to test/commit. I was wondering how a build server would change this process. How do developer test their code when the application is too huge to compile locally? They just code, commit and pray?

+4  A: 

Absolutely not.

The developer usually has a build file which can build the project for him or her, which has some "targets" defined which do the testing. If you have a really big project, you may have certain portions of it precompiled for you, so you don't have to build the whole thing in one big chunk. You usually do your testing locally before you commit to your repository. Breaking the build in big projects can mark you as an object of ridicule and scorn. Breaking the build in really important, really big projects can be career limiting... ;-)

The build SERVER itself doesn't change this. The build server only runs your build file and the targets you tell it to.

Dave Markle
Ok. So this is were unit test comes handy right? So you don't have to compile the whole thing just to test what you've written?
Subb
Yeah, a suite of unit tests that runs on the whole project can really come in handy to make sure you haven't broken other people's stuff. And even if you DO compile the whole thing, chances are you will only have to recompile your stuff, since a smart build file will only need to compile the incremental changes.
Dave Markle
True, I've forgot about incremental build. Thanks.
Subb
A: 

There are also build components (I've just started using TeamCity - no affiliation) that allow "personal builds".

I haven't used it yet as we haven't got it set up properly but my understanding is that TeamCity allows running a build (and tests if they are any run on the server) with your changes before committing (and optionally the server will commit your changes if the build is succesful). in TeamCity this is called a Pre-Tested Commit.

Mark