Import Jenkins job definition into TFS 2017 - jenkins

Is it possible, or are there tools available to allow you, to import or convert a legacy Jenkins job build definition into a TFS 2017 build definition. I'm not looking to convert the job to a Jenkins job within TFS, but simply use the steps contained in the Jenkins job to create a new build definition.

If the steps contained in jenkins job you are meaning just as the following screen shows which you can specify the details of the job.
Unfortunately, it's not able to directly covert this to a TFS build definition. There is no such kind tool could do this. It's only able to Export/Import TFS vNext Build Definition itself. You have to manually convert jenkins job build definition to TFS build definition.

Related

TFS 2013 Multipipeline builds like in Jenkins

I have been looking for a while now. Is there any way to create something like multipipeline branches from jenkins in TFS 2013?
Multipipeline builds in Jenkins work such that everytime a developer creates a branch in the repository, Jenkins would clone the main build and create a new build specifically for that new branch. Once the branch is deleted, the build also disappears. This way we can make sure that nothing is merged back to master, that did not pass tests or doesn't build.
Is there any way to achieve the same effect in TFS 2013? I know its possible in Azure DevOps but can't find anything specifically on TFS 2013. Sadly TFS2013 is a constraint of the project and cannot be changed.
Is there any way to achieve the same effect in TFS 2013?
I am afraid there is no same workflow in TFS2013, TFS newer versions(e.g. 2015 2017 2018...),Azure Devops Service.
Since TFS2013 is an older version, many features are not supported in this version of TFS.
For example: Triggers, Conditions and so on.
So even a similar workflow cannot be used in TFS2013. I suggest you can update TFS2013 to a newer version, so you will have more applicable functions
In the newer version of TFS, Azure Devops Server or Azure Devops Service, it can use triggers and conditions to trigger build or task to verify the branch.
For example:
You could set CI Trigger for pipeline, and set condition for some tasks. Then when the new branch is created, it will trigger the build. In the build, it will determine the task to run based on the triggered branch(condition).
Or in order to avoid directly merging the branch into the master, you can use PR trigger to pre-merge the branch so that you can verify that the branch is correct.
For more detailed information, you could refer to this doc: Build multiple branches

Can Jenkins pull TFS gated checkin code for build?

I'm trying to make Jenkins pull TFS gated checkin code but failed to do so.
I have managed to add a Jenkins build step in TFS, This build step is a "trigger" to start a build job in Jenkins, This job taking the source code from TFS and compile it, the problem is that this code is without the gated checkin.
For example:
My code base is "A" and compilation is working.
I'm pushing new change (lets call it "B" delta) that should break the build (invalid c# syntax).
This trigger a build in TFS which call Jenkins job, this job taking only "A" code (without "B" delta).
Jenkins succsusfully building the code (base only on "A") which TFS then mark this build as succsusfully and let the bad "B" delta code inside.
Now every change set including a fix to this one will cause the next build to break because jenkins will take the bad "B" code and always fail.
Is there a way to make Jenkins take the code with the current gated checkin?
The reason I want to use Jenkins build instead of TFS is that the build process for .Net Core 2.0 in Jenkins is about X4 faster then TFS, and our source control is managed in TFS.
Using:
TFS - Version 15.117.26714.0
To avoid this issue, you could add a VS Build task before queue Jenkins Job task:

Jazz build definition from scm

I am looking for scm command which can be used to call RTC build definition from Jenkin's Job.
Earlier, I have tried Team Concert plugin to call build definition from jenkins. However, It has limitation of calling single "build definition".
I need to call multiple "build definition" of different streams from jenkins Job.

Single Jenkins job for SONAR analysis of multiple projects

I have a number of projects that need to be analysed by SONAR from jenkins. These projects include ant and maven projects. I have created a separate job for each SONAR analysis in jenkins.
Is it possible to have a single jenkins job in which I can pass some parameters from each individual sonar job and then see the dashboard?
If so, how do i go about it?
This solution is for Subversion and Maven.
Install the Parameterized Trigger Plugin
Create a Maven job for the SonarQube analysis, eg. _common-sonar with these settings:
Source Code Management: "Subversion", Repository URL: $PREVIOUS_SVN_URL, Check-out Strategy: "Always check out a fresh copy"
Build: Goals and options: install
Post-build Actions: "Sonar"
For the job you want to run analysis on add a Post-build Action "Trigger parameterized build on other projects" with these settings:
Projects to build: _common-sonar
Add Predefined parameters: Parameters: PREVIOUS_SVN_URL=${SVN_URL}
Now when the job-to-analyse completes it triggers the analysis job. The analysis job checks out the same SVN URL which was used by the first job.
This solution works without scripting or copying workspaces but there are quite obvious limitations and non-ideal features:
the build command is always only mvn install
the SVN checkout may be from different revision than original build
checkout and build are always done from scratch
I didn't consider ant at all here.
Improvement ideas are quite welcome!
Late improvement edit:
Instead of using a maven build ( in _common-sonar), you may also use SonarQube directly by invoking a Standalone SonarQube analysis
Additionally to the SVN URL you can add a parameter for the build tag and project name to use in sonar. Simply add
NAME=YOUR_PROJECT_NAME
BUILDTAG=$BUILD_TAG
beneath the PREVIOUS_SVN_URL parameter.
In your _common-sonar you can use it with ${NAME} and ${BUILDTAG}.
In a similar need I had once, I created a single job, which pulled sources of several projects (each to its own sub-folder in job's workspace).
Then, I wrote a simple shell script that looped over all directories and ran the sonar analysis.
The job had the sonar post build plugin which showed an aggregated report.
Unfortunately, I don't have an example as this was some years ago, but you can make it work.
I hope this helps.

From TFS + TeamBuild to Jenkins + Perforce

Our current CI build process is all around TFS and its TeamBuild. We're evaluating Jenkins + Perforce as our future solution.
My question is how do I translate everything I have configured in the TFS build definitions to Jenkins in order to make it build my projects? My understanding is Jenkins uses MSBuild's config file to build. If that's true, does that mean I'll have to somehow have all the information currently in TFS build definition in MSBuild's config file?
Jenkins does not use any msbuild files per default. It might bpossible be possible using plugins though. Or simply calling msbuild which will have the same effect. If you know how to build from a commandline, its trivial doing it from Jenkins. Simply create a freestyle project and add a windows 32 shell command.

Resources