How Do YOU Structure Projects and Build Profiles?

I'd like to get an idea for what purpose you create projects and build profiles. I can understand how it may differ depending on your product or service so to give you some context we're an e-commerce company and all the software we write is web-based. Our current project/build profile setup is

Project 1 Production
Build Profile 1 - Incremental (Runs on every check-in) // This just runs all unit tests
Build Profile 2 - Acceptance (Runs all tests) //Daily


Project 2 Current Release
Build Profile 1 - Incremental (Runs on every check-in) // This just runs all unit tests
Build Profile 2 - Acceptance (Runs all tests) //Daily

I'd like to get an idea of how other people structure their builds. Let's hear it!

Cheers,
Aeden

1 comment
Comment actions Permalink

Aeden,

Seems, a question might be too generic to attract many users...

A bit on how we build at JetBrains:

A project is usually a set of build configurations building off the same sources branch (version branch / release).
e.g. right now we have two active projects for TeamCity: one is building our sources for 6.5.x release and one building off the trunk (that is to become TeamCity 7.0 at some point).
When we branch the sources, we also copy the project with all the build configurations it contains.

There are also several auxiliary projects to hold related configurations (like running maintenance tasks for the agents; building TeamCity plugins that are not bound to any specific TeamCity release; handling deployment tasks).

In TeamCity project we have many build configurations in a project, ranging from compilation, unit tests and integration tests across different platforms/databases to the ones participating in assembling the final distribution: core, plugins, tools, installers creator. There are also several auxiliary build configurations like those collecting code inspections and code duplicates.
These all are heavily linked with artifact and snapshot dependencies, basically forming the main "MasterBuild" build, which reports the status for the entire project, when run.



0

Please sign in to leave a comment.