I have a CI build server configured for Java and .NET projects and am trying to integrate a new project to the server. Unfortunately, this project uses TFS (2008) for its SCM.
Before it's said, I know TFS provides build capability, but we are trying to standardize on build infrastructure and the first step is having all projects built through the same web services (Jenkins in this case).
I need to install TFS to the build server, so I downloaded the TeamExplorer client, an ISO just under 400Mb in size. When I tried installing from the ISO, it doesn't offer optional install components, and comes up with a large list of components it will install (most will never be used on this server, AFAIK).
- Microsoft Visual Studio 2008 Shell (integrated mode)
- Microsoft Visual Studio Tools for Microsoft Office system (version 3.0 Runtime)
- Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System Runtime
- Microsoft Document Explorer 2008
- Microsoft Visual Studio 2008 Team Explorer
- Microsoft Office System 2003 Primary Interop Assemblies
It seems very much overkill to install the full Visual Studio UI, and all attendant stuff as I will only ever be calling the CLI TFS client. Is that all necessary for the CLI utility?
Is it possible to get just the assemblies required for command line TFS? Or is it possible to install only the CLI from the ISO?
I know there is a similar question here, with a list of the minimum files to copy for a working command line TFS in ijprest's answer, but I don't want to install a hack. I'd prefer a supported install that won't cause confusion in the future.
[Edit]
Based on a couple of answers that came in, I'll explain the environment and reasoning.
The build server itself is a Windows 2008 server, but I can't build through TFS, because we are trying to create a unified CI system that will handle multiple projects.
Some projects are .NET, some Java. Some are hosted (SCM) on Subversion, some on ClearCase. This new project is hosted on TFS (so far 1 project out of 6), so TFS is in the minority here.
Politically, we cannot mandate that projects use a single set of tools. However, we're hoping that having a single build point will gently push projects into a more uniform approach (or at least push project leadership into 'talking' to each other before purchasing new tools/frameworks/etc.
So, the build server will need to be able to pull source from SCM onto a 'build' area, then perform the build (through Ant, Maven, NAnt, MSBuild, Grdle, whatever), but the important things are:
- The build is kicked off automatically based upon source changes (based upon polling the SCM)
- The build system will pull the source from SCM with no human interaction.
- The build will occur via convention, OR (at least) via SCM based scripts (build.xml, makefiles, etc.). The important thing is again no human interaction.