multi-machine/OS build question

I have a pretty complex ( in my mind) build scenerio that I am trying to get to work and I would like some guidance or ideas if possible.

We have a Linux build that has the actual compilation steps initiated through Visual Studio on the Windows side ( MainWin plugin) while the compilation is actually launched on the Linux side.  The source has to exist on the Linux side.
What I need to do is:

1. Check-out source on Linux agent.
2. possibly run some preprocessing steps on the Linux agent

3. Initiate build on Windows agent using the source checked-out on the Linux agent ( Linux drive mounted via samba ) ****

4. Initiate post build steps on Linux agent

I know how to trigger these steps and setup everything execpt how to have the build configurations access the source directory from step 1.  Can I pass this information somehow?

So basically this is what it looks like:

cvs/svn checkout on Linux agent.
(LINUX) /BUILD_AGENT/Work/[GUID]

trigger Windows build
(WINDOWS) - /BUILD_AGENT mounted as X: for insance.  How do I find the GUID source check-out directory of the upstream Linux build?
Visual Studio would be launched and a project would be loaded in this manner: x:/Work/[GUID]/somedir/project.vcproj

trigger Linux build
( LINUX)  need to access the same source directory again on the Linux side for post processing: BUILD_AGENT/Work/[GUID]

We are talking multiple GBs ( 10 - 20 +)  here so passing the source as an artifact isn't much of an option for performance reasons and disk space reasons.

Any advice?
thanks!!!!!

2 comments

Hello,

If I correctly understood you, you want to run steps 1, 2 and 4 in one build configuration and 4 step in another within TeamCity. If so you can trigger a build on Windows agent from build script another build configuration (that covers steps 1, 4 and 4) by http request (see details at http://confluence.jetbrains.net/display/TCD5/Accessing+Server+by+HTTP). This will cover your request?

Kind regards,
Marina

0

I got this implemented and it works well - thanks for your help.
The only negative I have is that you lose track of your dependencies in the GUI.  There is no visual way to see that project A triggers project B ( or that project B is dependent on A ).
Having this feature ( ability to pass parameters ) would still be a huge improvement in TeamCity.  I have seen requests in youtrack for this feature, so hopefully those will get implemented in the near future.

thanks,
nsn

0

Please sign in to leave a comment.