TeamCity future direction and the Deployment Pipeline

Hello,

First of all this is a great product. We have been using TeamCity for years. We switched from Cruise Control and never looked back.

After doing simple CI for years, we are now slowly moving in the direction of a "deployment pipeline".

Thanks in part to books like this: http://www.informit.com/articles/article.aspx?p=1621865

I know that the goal of a deployment pipeline can be achieved with TeamCity by connecting builds together and so forth, but it is not as iniuitive as I would like.
I also know that there is a plugin or two, but it seems that some native support could be added to help create and visualize a "Deployment Pipeline".

Though I have never used GO, it seems it addresses this concept.
http://www.thoughtworks-studios.com/go-agile-release-management

This screen shot from a hudson plugin seems to sum it up..
http://www.centrumsystems.com.au/blog/?p=121

So in summary, I wanted to find out if the TeamCity Team could shed some light on this topic.


Thanks.

4 comments
Comment actions Permalink

Hello,

We are considering adding support for pipeline/build chain visualization, and here is a feature request to vote for: TW-14067.

Continuous  deployment is possible in TeamCity (with artifact and snapshot  dependencies) but so far there are at least two areas which need  improvement:
- visual representation of the build chain (=pipeline)
- ease of configuration (this can require rethinking of build triggering and the "pipeline" definition


Opening  the cards slightly, while elaborating TeamCity 7.0 topics we were  discussing the feature but so far it was not designated as our top  priority for the next release.
This  is partly because there is no unanimous team opinion on how this should  look like considering existing TeamCity features and dependencies.
I guess I can describe one of the approaches in a blog or elsewhere and ask for community feedback.

Another  point it that so far it is not clear how build chain/pipelines  presentation should be added into web UI. Adding one more view seems to  introduce one more dimension to already not-trivial UI which we do not  want to complicate further...

All  in all it would help if you can pinpoint the most painful points that  you face when using continuous delivery scenarios with TeamCity  currently.
Also, hearing more voices on this can help us figure out how critical is the dedicated support for deployment pipelines.

0
Comment actions Permalink

Greetings and thanks for the reply.

I am happy that to know that there is discussion taking place on this.

For us, once we move toward a full deployment pipline, the key change is that the intereseted stakeholders will include more than just developers.
Our B/A's and project managers should be able to see a simple screen and understand how a specific build is progressing.
They should also be able to execute a deployment by choosing from a list of sucessful builds.


For now however I was hoping that you could point me toward some documentation or example of how to create a simple Deployment Pipeline using
the current version of TeamCity.

I will be attempting the following configuration:

  1. Run COMMIT build
    1. Create a WAR file
  2. Automatically Run Acceptance Build (Selenium) using the previously created WAR file.
  3. Manually Trigger Deploy Build
    1. User Chooses from a list of working builds (War Files)
    2. Retrieve WAR file.
    3. Deploy to server



It is really step three that I am unsure about.
I would love to hear from other developers who are doing this.

Any help would be appreciated
Thanks..

0
Comment actions Permalink

(for those who might be interested in alike setup)
Here is how the above-described setup can be configured in TeamCity:
- create build configuration "Commit" that publishes a .war as it's artifact
- create build configuration "Acceptance Tests" that has snapshot dependency and artifact dependency on "Commit", has VCS trigger with "Trigger on changes in snapshot dependencies" option on. Repablish .war as own artifact.
- create "Deploy" build configuration with artifact dependency on "Acceptace Tests" one. The build configuration should perform the actual deployment of the .war inside the build script (like Ant/MSBuild/command line/etc.)

Whenever a build build be deployed, either go to the build results page and invoke "Promote" action from the build actions in the top right corner, or open Run custom build dialog for "Deploy" build cofiguration and select appropriate build from the artifact depenencies.


Hope this helps.

0
Comment actions Permalink

yaegor wrote:

(for those who might be interested in alike setup)
Here is how the above-described setup can be configured in TeamCity:
- create build configuration "Commit" that publishes a .war as it's artifact
- create build configuration "Acceptance Tests" that has snapshot dependency and artifact dependency on "Commit", has VCS trigger with "Trigger on changes in snapshot dependencies" option on. Repablish .war as own artifact.
- create "Deploy" build configuration with artifact dependency on "Acceptace Tests" one. The build configuration should perform the actual deployment of the .war inside the build script (like Ant/MSBuild/command line/etc.)

Whenever a build build be deployed, either go to the build results page and invoke "Promote" action from the build actions in the top right corner, or open Run custom build dialog for "Deploy" build cofiguration and select appropriate build from the artifact depenencies.


Hope this helps.


A few questions:

  1. In the Acceptance Tests stage why would you use a VCS trigger as opposed to a finished build trigger with the option selected for successful builds only?  When I tried the VCS trigger it never fired the tests stage for me.
  2. In the Deploy stage how is the artifact dependency configured?


Thanks!
Colin

0

Please sign in to leave a comment.