X
09Jul

Setup Jenkins for VSO with TFVC

Jenkins provides an easy-to-use Continuous Integration method, making it easier for developers to integrate changes to the project.

We can use Visual Studio Online (VSO) to store code and use Jenkins for Continuous Integration builds.  A Jenkins build can be triggered when code is checked into TFS with TFVC as the code repository.

In this blog, I am showcasing the ability of using TFS Version Control of a team project setup in VSO for Jenkins build system.

 

Pre-requisites:

1.      Visual Studio Online account with a Team Project with Version Control as source repository

2.      JDK, JRE latest version setup and environment variables configured

3.      Jenkins instance up and running

 

 

Login to the VSO account and navigate to the team project.

Jenkins1

 

Normally, when we configure Jenkins along with on premise TFS, we have to specify the location of TF.exe (usually C:\Program Files (x86)\Microsoft Visual Studio <>\Common7\IDE\TF.exe) which is used in retrieving the source code from TFS for execution of the build.

Source Code Access on TFS is provided through the <> and <>  at Jenkins level. The same configuration does not work with VSO without providing the complete email - Microsoft ID credentials <>.

TF.exe does not support VSO login which makes it impossible to use Windows ID credentials unless pre-cached.

 

Jenkins2

 

To use VSO, we need to make use of Team Explorer Everywhere (TEE) Command Line Client (CLC), i.e., TEE CLC.

Download the TEE CLC 2013 or later version.

Once the package is downloaded, unzip the file and configure environment PATH variable for the same.

Now, let’s configure Jenkins instance to make use of TEE CLC to build the VSO project.

Access the running instance of Jenkins, click on “Manage Jenkins”à “Manage Plugins”. Switch to “Advanced”.

Download the latest file from the below 2 URLs

·        TFS Plugin – https://wiki.jenkins-ci.org/display/JENKINS/Team+Foundation+Server+Plugin

·        MS Build Plugin - https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin

And save them with extension – “.hpi “.

Upload these 2 files under the “Upload Plugin” tab.

Jenkins3

 

Once the files are uploaded, restart the Jenkins service in “Services.msi”.

Jenkins4

 

Configure TFS Plugin and MSBuild Plugin under “Manage Plugins” --> “Configure System” --> Team Foundation Server and MSBuild respectively. Restart Jenkins service.

 

Jenkins5

 

With these configurations completed, we can now create a new Jenkins job to start the actual build execution.

Navigate to Jenkins home page, click on New Job, give a name and choose the type of project (Here, i have used Freestyle Project) Jenkins6

 

Before we configure Jenkins to get source code from VSO for build, since TEE CLC is a new client, its End User License Agreement (EULA) has to be accepted.  This being a command line client, we do not get any UI for accepting the EULA. We need to configure this as a job and execute the agreement.

Scroll down to Build section under the job, choose “Execute Windows batch step” and in the box, provide the command – “ tf.cmd eula –accept

Jenkins7

 

Without any further configuration, save the job and click on “Build Now” in the job homepage.

With the job execution, the output window looks similar to the below image –

Jenkins8

 

Now that the EULA has been accepted, we can configure the job to retrieve source code from VSO and proceed with the build.

 

Create a new job / Open the executed job and scroll down to “Execute Windows batch” step. Delete the EULA accept command.

Now scroll to “Source Code Management” section. Under this, input VSO project related values.

1.      Choose Team Foundation Server from list of options under Source Code Management

2.      Server URL should have information upto the Collection level. Ex: (http://abcd.visualstudio.com/DefaultCollection)

3.      Project path should resemble the server source code path. Ex: ($/FabrikamFiber/Dev)

4.      Login name should be the complete email-id for VSO login ( IMPORTANT : It is mandatory to have the alternate credentials enabled even though it is not being used explicitly) Ex: liveid@domain.com

5.      Enter the user password.

6.      Leave the other fields as is with existing values unless you need to change.

7.      Save changes to the job and trigger a build.

 

Jenkins9

 

Scroll down to Build Section with the Job creation page to configure the project/solution that needs to be compiled.

In the Build section, click on Add Build Step and Choose – “Build a Visual Studio Project or Solution using MSBuild” from the list of options.

In the same section, choose the MS Build Name/Version from drop-down, the Solution file (sln) or csproj file for the particular project to be compiled and the minimum option as build argument – “/t:build”. Save the changes and trigger the build by clicking on "Build Now" link.

Jenkins10

 

With the correct configuration, the build should succeed with success message in output console.

 

Jenkins11

 

Related

Sonar Integration with TFS for Java Projects

 Sonar Integration with JAVA.1.Download sonar-3.7 and sonar-runner-2.3*** unzip folders and cop...

Read More >

Bugzilla to TFS Migrator (Part 4 of 4) - Migration

This is the final part of the Bugzilla to TFS Migrator blog series covering the actual steps of migr...

Read More >

Dynamics 365 Business Central: How to Record Events in Business Central

When you are developing an extension for Dynamics 365 Business Central and you need to interact with...

Read More >

Token Based Authentication for Web API's

Securing ASP.NET Web API using Custom Token Based AuthenticationProviding a security to the Web API&...

Read More >

OUT OF BAND Feature

What is the Out of Band??Think about the situation – your one of the user who is thousand mile...

Read More >

The Best Practices and Advantages of Designing Effective Test Cases

The Best Practices and Advantages of Designing Effective Test Cases OverviewTest case is a &ldq...

Read More >

Software Services

The whole world has come to realize the role played by Information Technology and looking at ways to...

Read More >

End to End Testing Using Visual Studio 2010. (Power of Visual Studio-Ultimate for Testing. )

Scenario:Usage of Manual Test case(MTM) to perform the Load Test using Visual Studio 2010.We call it...

Read More >

What's New in Microsoft Dynamics NAV 2017

We were hearing about Dynamics NAV 2017 since long time that it will be releasing by the end of 2016...

Read More >

Using XMPP and Openfire server in ASP.NET C# - Part -2

Roster in XMPPRoster are the contacts of  user (contact list). Roster Handlers in AgsXmppL...

Read More >

Share

Comments

Thanks for sharing this.
10/9/2019 10:27:29 AM | Reply

Post a Comment

Try DevOpSmartBoard Ultimate complete Azure DevOps End-to end reporting tool

Sign Up

  • Recent
  • Popular
  • Tag
Tags
Monthly Archive
Subscribe
Name

Text/HTML
Text/HTML
Contact Us
  • *
  • *