Exemple #1
0
        public void Convert_Null_ReturnsNull()
        {
            BuildResult?input          = null;
            string      expectedOutput = null;

            string output = (string)_converter.Convert(input, typeof(string), null, null);

            Assert.AreEqual(expectedOutput, output);
        }
Exemple #2
0
 public Build(BuildDefinitionReference definition, int id, BuildStatus?status, DateTime?queueTime, DateTime?startTime, DateTime?finishTime, BuildResult?result, IReadOnlyList <TestRun> testRuns)
 {
     Definition = definition;
     Id         = id;
     Status     = status;
     QueueTime  = queueTime;
     StartTime  = startTime;
     FinishTime = finishTime;
     Result     = result;
     TestRuns   = testRuns ?? new List <TestRun>();
 }
Exemple #3
0
 public InstallerOperation(SetupBuilder builder, Action remove)
 {
     _builder    = builder;
     BuilderFunc = builder.Run;
     Timeout     = new Timer(_ =>
     {
         Sender?.Dispose();
         Sender = null;
         Result?.Dispose();
         Result = null;
         remove();
     }, null, TimeSpan.FromMinutes(30), System.Threading.Timeout.InfiniteTimeSpan);
 }
Exemple #4
0
        private CacheResult(
            CacheResultType resultType,
            BuildResult?buildResult   = null,
            ProxyTargets?proxyTargets = null)
        {
            if (resultType == CacheResultType.CacheHit)
            {
                ErrorUtilities.VerifyThrow(
                    buildResult != null ^ proxyTargets != null,
                    "Either buildResult is specified, or proxyTargets is specified. Not both.");
            }

            ResultType   = resultType;
            BuildResult  = buildResult;
            ProxyTargets = proxyTargets;
        }
Exemple #5
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            BuildResult?result = value == null ? null : (BuildResult?)Enum.Parse(typeof(BuildResult), value.ToString());

            switch (result)
            {
            case BuildResult.Succeeded:
                return("Icons/tickResource.ico");

            case BuildResult.PartiallySucceeded:
                return("Icons/warningResource.ico");

            case BuildResult.Failed:
                return("Icons/crossResource.ico");
            }
            return("Icons/quesionResource.ico");
        }
Exemple #6
0
        public static Core.Models.BuildStatus Convert(BuildStatus?status, BuildResult?result)
        {
            switch (status)
            {
            case BuildStatus.InProgress:
                return(Core.Models.BuildStatus.InProgress);

            case BuildStatus.NotStarted:
                return(Core.Models.BuildStatus.NotStarted);

            case BuildStatus.Completed:
                return(Convert(result));

            default:
                throw new NotSupportedException("Unable to convert unrecognised BuildStatus.");
            }
        }
Exemple #7
0
        private static Core.Models.BuildStatus Convert(BuildResult?result)
        {
            switch (result)
            {
            case BuildResult.Canceled:
                return(Core.Models.BuildStatus.Stopped);

            case BuildResult.Failed:
                return(Core.Models.BuildStatus.Failed);

            case BuildResult.PartiallySucceeded:
                return(Core.Models.BuildStatus.PartiallySucceeded);

            case BuildResult.Succeeded:
                return(Core.Models.BuildStatus.Succeeded);

            default:
                throw new NotSupportedException("Unable to convert unrecognised BuildResult.");
            }
        }
Exemple #8
0
        /// <summary>
        /// List the builds that meet the provided query parameters
        /// </summary>
        public IAsyncEnumerable <Build> EnumerateBuildsAsync(
            string project,
            IEnumerable <int>?definitions = null,
            IEnumerable <int>?queues      = null,
            string?buildNumber            = null,
            DateTimeOffset?minTime        = null,
            DateTimeOffset?maxTime        = null,
            string?requestedFor           = null,
            BuildReason?reasonFilter      = null,
            BuildStatus?statusFilter      = null,
            BuildResult?resultFilter      = null,
            int?top = null,
            int?maxBuildsPerDefinition       = null,
            QueryDeletedOption?deletedFilter = null,
            BuildQueryOrder?queryOrder       = null,
            string?branchName          = null,
            IEnumerable <int>?buildIds = null,
            string?repositoryId        = null,
            string?repositoryType      = null)
        {
            var builder = GetBuilder(project, "build/builds");

            builder.AppendList("definitions", definitions);
            builder.AppendList("queues", queues);
            builder.AppendString("buildNumber", buildNumber);
            builder.AppendDateTime("minTime", minTime);
            builder.AppendDateTime("maxTime", maxTime);
            builder.AppendString("requestedFor", requestedFor);
            builder.AppendEnum("reasonFilter", reasonFilter);
            builder.AppendEnum("statusFilter", statusFilter);
            builder.AppendEnum("resultFilter", resultFilter);
            builder.AppendInt("$top", top);
            builder.AppendInt("maxBuildsPerDefinition", maxBuildsPerDefinition);
            builder.AppendEnum("deletedFilter", deletedFilter);
            builder.AppendEnum("queryOrder", queryOrder);
            builder.AppendString("branchName", branchName);
            builder.AppendList("buildIds", buildIds);
            builder.AppendString("repositoryId", repositoryId);
            builder.AppendString("repositoryType", repositoryType);
            return(EnumerateItemsAsync <Build>(builder, limit: top));
        }
Exemple #9
0
        public Microsoft.TeamFoundation.Build.Server.BuildStatus ConvertBuildResult(BuildResult?result)
        {
            if (!result.HasValue)
            {
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.None);
            }
            BuildResult value = result.Value;

            switch (value)
            {
            case BuildResult.None:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.None);

            case (BuildResult)1:
            case (BuildResult)3:
                break;

            case BuildResult.Succeeded:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.Succeeded);

            case BuildResult.PartiallySucceeded:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.PartiallySucceeded);

            default:
                if (value == BuildResult.Failed)
                {
                    return(Microsoft.TeamFoundation.Build.Server.BuildStatus.Failed);
                }
                if (value == BuildResult.Canceled)
                {
                    return(Microsoft.TeamFoundation.Build.Server.BuildStatus.Stopped);
                }
                break;
            }
            return(Microsoft.TeamFoundation.Build.Server.BuildStatus.None);
        }
Exemple #10
0
        public IList <Build> FindCompletedBuilds(DateTime?start     = null,
                                                 DateTime?finish    = null,
                                                 BuildResult?result = null,
                                                 string actor       = null)
        {
            if (finish == null)
            {
                finish = DateTime.Now;
            }

            if (start == null)
            {
                start = finish.Value.AddDays(-10);
            }

            var builds = new List <Build>();

            foreach (var x in _myProjects)
            {
                try
                {
                    var projectBuilds = _client.GetBuildsAsync(x,
                                                               minFinishTime: start,
                                                               maxFinishTime: finish,
                                                               resultFilter: result,
                                                               requestedFor: actor)
                                        .Result;

                    builds.AddRange(projectBuilds);
                }
                catch (AggregateException e)
                    when(e.InnerException is VssServiceResponseException ex)
                    {
                        Trace.WriteLine($"{nameof(BuildSearcher)}.{nameof(FindCompletedBuilds)}: Not enough privileges");
                    }
            }
        private static async Task <IEnumerable <Build> > GetBuildsFromTFSAsync(BuildHttpClient buildClient, List <BuildDefinitionReference> definitions, CancellationToken cancellationToken, BuildResult?resultFilter = null)
        {
            IEnumerable <Build> builds = await GetBuildsFromTFSByBranchAsync(buildClient, definitions, Options.BranchName, resultFilter, cancellationToken);

            builds = builds.Concat(await GetBuildsFromTFSByBranchAsync(buildClient, definitions, "refs/heads/" + Options.BranchName, resultFilter, cancellationToken));
            return(builds);
        }
 private static async Task <List <Build> > GetBuildsFromTFSByBranchAsync(BuildHttpClient buildClient, List <BuildDefinitionReference> definitions, string branchName, BuildResult?resultFilter, CancellationToken cancellationToken)
 {
     return(await buildClient.GetBuildsAsync(
                project : Options.TFSProjectName,
                definitions : definitions.Select(d => d.Id),
                branchName : branchName,
                statusFilter : BuildStatus.Completed,
                resultFilter : resultFilter,
                cancellationToken : cancellationToken));
 }
Exemple #13
0
        private static async Task <Build> GetLatestBuildAsync(CancellationToken cancellationToken, BuildResult?resultFilter = null)
        {
            var buildClient = ProjectCollection.GetClient <BuildHttpClient>();
            var definitions = await buildClient.GetDefinitionsAsync(project : Options.TFSProjectName, name : Options.BuildQueueName);

            var builds = await GetBuildsFromTFSAsync(buildClient, definitions, cancellationToken, resultFilter);

            return((await GetInsertableBuildsAsync(buildClient, cancellationToken,
                                                   from build in builds
                                                   orderby build.FinishTime descending
                                                   select build)).FirstOrDefault());
        }
Exemple #14
0
        public Microsoft.TeamFoundation.Build.Server.BuildStatus ConvertBuildStatus(BuildStatus?status, BuildResult?result)
        {
            if (!status.HasValue)
            {
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.NotStarted);
            }
            BuildStatus value = status.Value;

            switch (value)
            {
            case BuildStatus.None:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.None);

            case BuildStatus.InProgress:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.InProgress);

            case BuildStatus.Completed:
                return(this.ConvertBuildResult(result));

            case (BuildStatus)3:
            case (BuildStatus)5:
            case (BuildStatus)6:
            case (BuildStatus)7:
                break;

            case BuildStatus.Cancelling:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.Stopped);

            case BuildStatus.Postponed:
                return(Microsoft.TeamFoundation.Build.Server.BuildStatus.NotStarted);

            default:
                if (value == BuildStatus.NotStarted)
                {
                    return(Microsoft.TeamFoundation.Build.Server.BuildStatus.NotStarted);
                }
                break;
            }
            return(Microsoft.TeamFoundation.Build.Server.BuildStatus.NotStarted);
        }