private void AddBuilds(ref Project project)
		{
			var count = (int)buildTypesJson.count;
			for (int i = 0; i < count; i++)
			{
				var buildTypeJson = buildTypesJson.buildType[i];

				if (buildTypeJson.projectId != project.Id)
				{
					continue;
				}

				var build = new Build();
				build.Id = buildTypeJson.id;
				build.Name = buildTypeJson.name;

				var url = string.Format(buildStatusUrl, build.Id);
				var buildStatusJsonString = RequestHelper.GetJson(url);
				buildStatusJson = JsonConvert.DeserializeObject<dynamic>(buildStatusJsonString ?? string.Empty);

                build.Branch = (buildStatusJson != null) ? (buildStatusJson.branchName ?? "default") : "unknown";
                build.Status = GetBuildStatusForRunningBuild(build.Id);

				if (build.Status == BuildStatus.Running)
				{
					UpdateBuildStatusFromRunningBuildJson(build.Id);
				}

				build.UpdatedBy = GetUpdatedBy();
				build.LastRunText = GetLastRunText();
				build.IsQueued = IsBuildQueued(build.Id);
				build.StatusDescription = (string)buildStatusJson.statusText;

				if (build.Status == BuildStatus.Running)
				{
					var result = GetRunningBuildBranchAndProgress(build.Id);
					build.Branch = result[0];
					build.Progress = result[1];
				}
				else
				{
					build.Progress = string.Empty;
				}

				project.Builds.Add(build);
			}
		}
コード例 #2
0
        private void AddBuilds(ref Project project, Group group)
        {
            foreach (var job in group.Jobs)
            {
                var buildTypeJson = GetJsonBuildTypeById(job.Id);

                var build = new Build();
                build.Id = buildTypeJson.id;
                build.Name = job.Text ?? buildTypeJson.name;

                var url = string.Format(buildStatusUrl, build.Id);
                var buildStatusJsonString = RequestHelper.GetJson(url);
                buildStatusJson = JsonConvert.DeserializeObject<dynamic>(buildStatusJsonString ?? string.Empty);

                build.Branch = buildStatusJson.branchName ?? "default";
                build.Status = GetBuildStatusForRunningBuild(build.Id);

                if (build.Status == BuildStatus.Running)
                {
                    UpdateBuildStatusFromRunningBuildJson(build.Id);
                }
                if (build.Status == BuildStatus.Failure)
                {
                    if (buildStatusJson.testOccurrences != null)
                        build.FailedTests = buildStatusJson.testOccurrences.failed ?? 0;
                }

                build.UpdatedBy = GetUpdatedBy();
                build.LastRunText = GetLastRunText();
                build.IsQueued = IsBuildQueued(build.Id);

                if (build.Status == BuildStatus.Running)
                {
                    var result = GetRunningBuildBranchAndProgress(build.Id);
                    build.Branch = result[0];
                    build.Progress = result[1];
                }
                else
                {
                    build.Progress = string.Empty;
                }

                project.Builds.Add(build);
            }
        }