How to do deploy only the BPELs which have changed?

I'm using a single build configuration in TeamCity 3.1.1 to compile and deploy an bunch of Oracle BPELs; currently there are 52 of them, and the list is growing.

I'm on WinXP Pro SP2, and my VCS is StarTeam. The build runner is ANT, and my script currently does all the StarTeam checkouts and labelling explicitly.

At the beginning of the process a build number property is used to attempt to create a StarTeam View Label; the process continues irrespective of whether a new label is created or the label already exists, and all subsequent checkouts are done from this label.

(Question: I understand TeamCity's labelling function takes place after the build is complete - but doesn't that mean any files checked in by users while the build is running are incorrectly labelled?)

The process currently compiles/deploys all 52 BPELs each time, which is quite a lengthy process. Typically, only a very few of those BPELs have actually changed, so I am trying to devise a method of saying something like 'only deploy those BPELs which have changed between StarTeam label A and StarTeam label B'

Does anybody have any suggestions how this could be achieved?

3 comments

Answering your inline question: TeamCity puts labels exactly on those sources taken for the build. No checkins made during the build affect this label.

You can deploy only BPELs actually changed if you are able to trace a connection from a particular file to the corresponding BPEL. Having such traceability you can request from StarTeam all modifications made from label A to label B and determine which BPELs are affected.

0

Sergey, thanks for your response.

You have now prompted another question, but a StarTeam question rather than a TeamCity one: I'm using a rather old StarTeam version (5.4), but how do you "request from StarTeam all modifications made from label A to label B"?

0

Hello Ken,

I'm not a great specialist in starteam command line interface since in TeamCity
we're using SDK API.

You may try the following.

1. checkout project for label A
2. then using 'stcmd list' for label B determine which files were modified
(not current).

Not too efficient but may work. However there may be a better way.

Sergey, thanks for your response.

You have now prompted another question, but a StarTeam question rather
than a TeamCity one: I'm using a rather old StarTeam version (5.4),
but how do you "request from StarTeam all modifications made from
label A to label B"?

--
Sergey Anchipolevsky
Software Developer
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0

Please sign in to leave a comment.