Overview and design guideline help


I'm looking into using TeamCity for our company's continuous integration system.  We are looking to replace ElectricCloud as it isn't really meeting our needs and is very very expensive.

I've been looking through the wiki trying to find some general guidelines about to setup different build configurations and projects. Looking at a simple outline of our system, we have an Eclipse plugin based product with the following "modules" (in rough dependency ordering)

  • Third Party
    • Platform
      • Modules
      • Core
  • Integration tests

Integration tests are tests that are run on the whole system after a successful build/test of everything.

      For each module, we have unit tests and UI tests that we want to run, and we don't want to have the dependent modules/tests run unless the build/test all pass above.  From what I've read, I'm thinking of something along the following lines:

      1 project - RCP Trunk

      • Build - Third Party
        • Unit Test - Third Party
        • UI Test - third Party
          • Build - Platform (runs if Unit & UI pass)
            • Unit Test
            • UI Test
            • Build - Modules
              • UI Test
              • Unit Test
            • Build - Core
              • UI Test
              • Unit Test
              • Integration Test (runs if all Module & Core tests pass)

      Does this sound about right? Where each one of these items is a new "build" config pulling artifacts from the item(s) it depends on?

      When I have a "branch" of this product, would i just clone it into a project and set the VCS branch location?   Then I guess I could "archive" projects as they become not needed any more?

      Sorry if this as already been answered somewhere... I'm trying to figure out some "best practices" before I dig in too deep.



      1 comment
      Comment actions Permalink

      Ah.  After doing some more playing, it looks like this might be along the right lines, and then I'd want to create templates from the trunk, to create each branch.     


      Please sign in to leave a comment.