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!!!!!
Please sign in to leave a comment.
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
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