public void Clone_Should_Reset_BuildDefinitionId() { var tfsBuild = new TfsBuild { BuildDefinitionId = 1 }; var clone = tfsBuild.Clone() as TfsBuild; Assert.AreEqual(0, clone.BuildDefinitionId); }
/// <summary> /// Tfs returns associated changes from last successful build. That mean, for failed build it can return change that was reported for previous failed build. /// This method - clear previously reported changes of previous failed build /// </summary> private static ICollection <TfsScmChange> GetFilteredBuildChanges(TfsApis tfsManager, TfsBuildInfo buildInfo, TfsBuild build, ICollection <TfsScmChange> changes) { //put changes in map Dictionary <string, TfsScmChange> changesMap = new Dictionary <string, TfsScmChange>(); foreach (TfsScmChange change in changes) { changesMap[change.Id] = change; } //find previous failed build IList <TfsBuild> previousBuilds = tfsManager.GetPreviousFailedBuilds(buildInfo.ProjectId, build.StartTime); TfsBuild foundPreviousFailedBuild = null; foreach (TfsBuild previousBuild in previousBuilds) { //pick only build that done on the same branch if (build.SourceBranch.Equals(previousBuild.SourceBranch)) { foundPreviousFailedBuild = previousBuild; break; } } if (foundPreviousFailedBuild != null) { //remove changes from previous build var previousChanges = tfsManager.GetBuildChanges(buildInfo.ProjectId, foundPreviousFailedBuild.Id.ToString()); foreach (TfsScmChange previousChange in previousChanges) { changesMap.Remove(previousChange.Id); } int removedCount = changes.Count - changesMap.Count; if (removedCount == 0) { Log.Debug($"Build {buildInfo} - build {build.Id} contains {changes.Count} associated changes. No one of them was already reported in previous build {foundPreviousFailedBuild.Id}"); } else { Log.Debug($"Build {buildInfo} - build {build.Id} contains {changes.Count} associated changes while {removedCount} changes were already reported in build {foundPreviousFailedBuild.Id}"); } } return(changesMap.Values); }
public static string GetPathName(TfsBuild tfsBuild) { return(tfsBuild.Name); }
public TfsBuildNode(TfsBuildsNode parent, TfsBuild tfsBuild) : base(parent.NodeContext, tfsBuild, GetPathName(tfsBuild)) { Parent = parent; TfsBuild = tfsBuild; PathSegment = parent.PathSegment + new PathSegment(GetPathName(tfsBuild)); }