Installation
Download TFS plugin from https://wiki.jenkins-ci.org/display/JENKINS/Team+Foundation+Server+Plugin
Download MSBuild plugin from https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin
You may go to the jenkins-ci wiki page to download the plugin manually or it can be downloaded via Manage Plugin page, either way is fine.
Download MSBuild plugin from https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin
You may go to the jenkins-ci wiki page to download the plugin manually or it can be downloaded via Manage Plugin page, either way is fine.
Install plugin under Manage Jenkins.
Now TFS is available as an option in Source Code Management.
Plugin can also be found and installed by using the plugin manager.
Troubleshooting during installation
The following error maybe encountered if TF.exe is not installed or path to access TF.exe is not configured in Jenkins.
Started by user anonymous Building in workspace C:\Program Files (x86)\Jenkins\jobs\XXX\workspace [workspace] $ tf workspaces -format:brief -server:tfs.server.com ******** java.io.IOException: Cannot run program "tf" (in directory "C:\Program Files (x86)\Jenkins\jobs\XXX\workspace"): CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(Unknown Source) at hudson.Proc$LocalProc.<init>(Proc.java:244) at hudson.Proc$LocalProc.<init>(Proc.java:216) at hudson.Launcher$LocalLauncher.launch(Launcher.java:773) at hudson.Launcher$ProcStarter.start(Launcher.java:353) at hudson.plugins.tfs.TfTool.execute(TfTool.java:99) at hudson.plugins.tfs.model.Server.execute(Server.java:47) at hudson.plugins.tfs.model.Workspaces.getListFromServer(Workspaces.java:38) at hudson.plugins.tfs.model.Workspaces.populateMapFromServer(Workspaces.java:50) at hudson.plugins.tfs.model.Workspaces.exists(Workspaces.java:76) at hudson.plugins.tfs.actions.CheckoutAction.checkout(CheckoutAction.java:36) at hudson.plugins.tfs.TeamFoundationServerScm.checkout(TeamFoundationServerScm.java:175) at hudson.model.AbstractProject.checkout(AbstractProject.java:1408) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581) at hudson.model.Run.execute(Run.java:1603) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:247) Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 20 more Finished: FAILURE
The missing file can be downloaded in here.
http://www.microsoft.com/en-us/download/details.aspx?id=16338
Install in progress….
The following error maybe encountered if path to TF is not given.
The next step is to tell Jenkins where TF is. In Jenkins –> Configure System, depends on the version of .Net Framework, apply the path as follow.
Setup for MSBuild Project
Once the Jenkins is setup, by default it is only getting the files. The next step is to setup the MSBuild for the project.
In [Project] –> configuration –> Build –> Add build step, we will setup as follow.
Add build step will now have an option to use MSBuild.
As described in the jenkins-ci wiki page, we need to configure the MSBuild. A simple setup for .Net framework 4.0 as follow.
In [Project] –> configuration –> Build –> Add build step, we will setup as follow.
Add build step will now have an option to use MSBuild.
As described in the jenkins-ci wiki page, we need to configure the MSBuild. A simple setup for .Net framework 4.0 as follow.
Trigger a build from check in
Perhaps, one of the most interesting feature of CI is the ability to continuously ensure the integrity of the build. Hence the name continuous integration. With the ability to trigger a build from any check-ins from developers, we have immediate feedback if any piece of check-ins causing troubles. This can be achieved by polling the SCM periodically. The online help with Jenkins is quite comprehensive, it follows the cron syntax.