コード例 #1
0
        public int Execute(string[] args)
        {
            Configuration configuration;

            if (!_configurationProvider.TryProvide(args, out configuration))
            {
                return(1);
            }

            if (configuration.TriggerBuild)
            {
                Console.WriteLine("Triggering new build of '{0}'", configuration.BuildDefinition);
                configuration.BuildNumber = _buildInvoker.TriggerBuildAndWaitForCompletion(configuration.Collection, configuration.Project, configuration.BuildDefinition);
            }
            else
            {
                Console.WriteLine("Creating manual build '{0}'", configuration.BuildDefinition);
                _manualBuildCreator.CreateManualBuild(
                    configuration.BuildStatus, configuration.Collection, configuration.BuildLog, configuration.DropPath, configuration.BuildFlavor,
                    configuration.LocalPath, configuration.BuildPlatform, configuration.BuildTarget, configuration.Project, configuration.BuildDefinition,
                    configuration.CreateBuildDefinitionIfNotExists, configuration.BuildController, configuration.BuildNumber, configuration.ServerPath,
                    configuration.KeepForever, configuration.AssociatedChangesetIds, configuration.AssociatedWorkitemIds, configuration.AutoIncludeChangesetWorkItems,
                    configuration.BuildQueueDisabled);
            }

            if (!string.IsNullOrEmpty(configuration.TestResults) && File.Exists(configuration.TestResults))
            {
                var success = _buildTestResultsPublisher.PublishTestResultsToBuild(
                    configuration.Collection, configuration.TestResults,
                    configuration.Project, configuration.BuildNumber,
                    configuration.BuildPlatform, configuration.BuildFlavor);

                if (!success)
                {
                    return(1);
                }
            }

            if (configuration.PublishTestRun)
            {
                var success = _testRunPublisher.PublishTestRun(configuration);

                if (!success)
                {
                    return(1);
                }
            }

            Console.WriteLine("Build added.");
            return(0);
        }