예제 #1
0
파일: Program.cs 프로젝트: karelz/jenkins
        /// <summary>
        /// Print out the Mac times comparing the Mac Minis to the Powerbooks
        /// </summary>
        private static void PrintMacTimes()
        {
            var client    = CreateClient();
            var miniTimes = new List <TimeSpan>();
            var proTimes  = new List <TimeSpan>();

            foreach (var buildId in client.GetBuildIds(new JobId("roslyn_prtest_mac_dbg_unit32", JobId.Root)))
            {
                var buildInfo = client.GetBuildInfo(buildId);
                var result    = client.GetBuildResult(buildInfo);
                if (result.State != BuildState.Succeeded)
                {
                    continue;
                }

                var time = result.BuildInfo.Duration;
                var json = client.GetJson(JenkinsUtil.GetBuildPath(buildId), tree: "builtOn");
                var name = json.Value <string>("builtOn");
                if (name.Contains("macpro"))
                {
                    proTimes.Add(time);
                }
                else
                {
                    miniTimes.Add(time);
                }
            }

            Console.WriteLine($"Pro Average: {TimeSpan.FromMilliseconds(proTimes.Average(x => x.TotalMilliseconds))}");
            Console.WriteLine($"Mini Average: {TimeSpan.FromMilliseconds(miniTimes.Average(x => x.TotalMilliseconds))}");
        }
예제 #2
0
        internal void AddJson(
            BuildId buildId,
            string buildInfoJson   = null,
            string buildResultJson = null,
            string failureInfoJson = null,
            string testReportJson  = null)
        {
            var buildPath = $"{JenkinsUtil.GetBuildPath(buildId)}api/json";

            if (buildInfoJson != null)
            {
                AddJsonCore(buildInfoJson, buildPath, tree: JsonUtil.BuildInfoTreeFilter);
            }

            if (buildResultJson != null)
            {
                AddJsonCore(buildResultJson, buildPath);
            }

            if (failureInfoJson != null)
            {
                AddJsonCore(failureInfoJson, buildPath, depth: 4);
            }

            if (testReportJson != null)
            {
                var testReportPath = $"{JenkinsUtil.GetBuildPath(buildId)}testReport/api/json";
                AddJsonCore(testReportJson, testReportPath);
            }
        }
예제 #3
0
파일: Program.cs 프로젝트: karelz/jenkins
        private OS GetOsForBuild(BuildId buildId)
        {
            var json     = _client.GetJson(JenkinsUtil.GetBuildPath(buildId), tree: "builtOn[*]");
            var computer = json.Value <string>("builtOn");
            OS  os;

            if (!string.IsNullOrEmpty(computer) && _computerNameMap.TryGetValue(computer, out os))
            {
                return(os);
            }

            return(OS.Unknown);
        }
예제 #4
0
 private string GetApiPath(BuildId buildId)
 {
     return($"{JenkinsUtil.GetBuildPath(buildId)}api/json");
 }
예제 #5
0
 public void GetBuildPath()
 {
     Assert.Equal("job/test/2/", JenkinsUtil.GetBuildPath(new BuildId(2, JobId.ParseName("test"))));
     Assert.Equal("job/test/job/op/13/", JenkinsUtil.GetBuildPath(new BuildId(13, JobId.ParseName("test/op"))));
 }