Continuous Integration build over TFS2017 - tfs

I would like to know what is the equivalent of "Continuous Integration - build each check-in" (XAML definition) in VNext definitions.
1- Is it "Run continuous integration triggers for commited changes" in Gated trigger?
2-Or it is a "Continuous Integration trigger with batch changes checked" in build definition.
I ask this question because I was not able to launch a CI build after successfully Gated Check-in. My CI build does different steps than Gated.
I'm over TFS 2017 (15.117.27414.0).

The equivalent of "Continuous Integration - build each check-in" (XAML definition) in VNext definitions is Continuous Integration trigger:
Enable CI trigger if you want the build to run whenever someone checks
in code.
Select Batch changes check box if you have a lot of team members
uploading changes often and you want to reduce the number of builds
you are running. If you select this option, when a build is running,
the system waits until the build is completed and then queues another
build of all changes that have not yet been built.
Select the version control paths you want to include and exclude. In
most cases, you should make sure that these filters are consistent
with your TFVC mappings on the Repository tab.
You can get more details in the link below:
https://learn.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/triggers?view=vsts

Related

Lock TFS check-ins when build is failing multiple times in Jenkins

Is there any options to lock TFS check-ins when the build is failing or three consequent times in Jenkins?
Not totally sure about your meaning of lock TFS check-ins. If you just want a developer checks in changes that break the build. We do not have any build in feature to support this integrate with Jenkins.
However, you can guard some or all of your code base against these problems by creating a gated check-in build definition(TFVC) or pull request(Git) through TFS own build system.
If you are using TFVC, by using Gated build, when developers try to check-in, they are prompted to build their changes. More details please take a look at our official tutorial.
If you are using Git, you could use pull request and branch policy. There is a Build validation setting in branch.
Validate code by pre-merging and building pull request changes
With using both of above method, you could only check in codes/changes when build succeed.

TFS 2015 Gated Build is creating a Build and Triggering Release Job

We are working on TFS 2015 Update 1
The same Job is triggering CI / Gated / Scheduled Build
I want CI/Scheduled build to Publish Artifact
Unable to find a way to disable Build Step Dynamically
I am calling a Powershell Script before 'Publish Build Artifact' Step and trying to find a solution to access the next Step and Set it to 'Skip'
But I have seen even when the Drop folder is empty, the Release (CI/CD) triggers as the Gated Job is creating a Build
Is there a way to avoid Gated Job to create a Build
or to avoid Release Job to trigger in case of Gated Build
In TFS 2015 update 1 I think you're way too far behind. There are solutions for later versions. In your case, you'd need a separate Build Definition for the gated build and if my memory serves me right, you don't have the task group option yet. Task Groups were introduced in TFS 2017, they would at least allow you to share process and variables between separate build definitions.
You're on an unsupported TFS version, in any case, TFS 2015 update 1 was replaced by TFS 2015 update 3.1 any versions between TFS 2015.0 and 2015.3.1 are unsupported and TFS 2015 update 1 contains a number of XSS security vulnerabilities that were fixed in TFS 2015.3.1 as well as in TFS 2017.0.1, 2017.3.1 and 2018.1. This would be a good time to upgrade and make the jump.
In TFS 2018 this would be possible with an artefact tag filter:
Prevent Release Trigger on Gated Check-in build
One option that remains available is to turn off the CI trigger of the release workflow and then from a powershell script, conditionally trigger the release from the build.

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:

How do you set-up both a daily (nightly) build and continuous integration?

How do you set-up both a daily (nightly) build and continuous integration?
I've created a CI build in Visual Studio, but the trigger is only one of options, but I want both a CI and a scheduled nightly build
If you are using the new build system, you can create multiple triggers.
Clone that CI Build Definition and change the Trigger condition.

TFS Build queue issue

I have one build controller and it has 4 build agents in it. When I run more than one build at a time it queues the build. Why it doesn't run 4 builds parallel? Is there any settings that I should change?
I am running TFS 2012.
running gated checkin
it also runs all the tests after the build is done.
Thanks for the help!
This is 'by design'. From Use a gated check-in build process to validate changes
Each gated check-in build definition can have only one running build at a time.
This is necessary to preserve the logic coherence of you version control.
If this is slowing your dev organization, you have many options (some are in the doc linked):
Change from Gated to Batched gated
Have multiple Build definitions (mapped on different portions of you sources)
Minimize the checks during build
Feed more resources to the Build server

Resources