/// <summary>
        /// Executes the logic for this workflow activity.
        /// </summary>
        /// <param name="context">The workflow context.</param>
        /// <returns>The <see cref="Microsoft.TeamFoundation.Build.Client.IQueuedBuild"/>
        /// object that is returned after queueing the new build.</returns>
        protected override IQueuedBuild Execute(CodeActivityContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            IBuildServer buildServer = context.GetValue(this.BuildServer);

            IBuildDefinition buildDefinition = context.GetValue(this.BuildDefinition);
            IBuildRequest    buildRequest    = buildServer.CreateBuildRequest(buildDefinition.Uri);

            buildRequest.Priority = context.GetValue(this.Priority);

            string processParameters = context.GetValue(this.ProcessParameters);

            if (!string.IsNullOrEmpty(processParameters))
            {
                buildRequest.ProcessParameters = processParameters;
            }

            IBuildController buildController = context.GetValue(this.BuildController);

            if (buildController != null)
            {
                buildRequest.BuildController = buildController;
            }

            IQueuedBuild queuedBuild = buildServer.QueueBuild(buildRequest);

            return(queuedBuild);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Executes the logic for this workflow activity.
        /// </summary>
        /// <returns>The <see cref="Microsoft.TeamFoundation.Build.Client.IQueuedBuild"/>
        /// object that is returned after queueing the new build.</returns>
        protected override IQueuedBuild InternalExecute()
        {
            IBuildServer buildServer = this.BuildServer.Get(this.ActivityContext);

            IBuildDefinition buildDefinition = this.BuildDefinition.Get(this.ActivityContext);
            IBuildRequest    buildRequest    = buildServer.CreateBuildRequest(buildDefinition.Uri);

            buildRequest.Priority = this.Priority.Get(this.ActivityContext);

            if (Enum.IsDefined(typeof(QueuePriority), buildRequest.Priority) == false)
            {
                // Set default value to normal, if no value has been passed.
                buildRequest.Priority = QueuePriority.Normal;
            }

            string processParameters = this.ProcessParameters.Get(this.ActivityContext);

            if (!string.IsNullOrEmpty(processParameters))
            {
                buildRequest.ProcessParameters = processParameters;
            }

            IBuildController buildController = this.BuildController.Get(this.ActivityContext);

            if (buildController != null)
            {
                buildRequest.BuildController = buildController;
            }

            IQueuedBuild queuedBuild = buildServer.QueueBuild(buildRequest);

            return(queuedBuild);
        }
Ejemplo n.º 3
0
        public VisibilitySettings(SDGuiStrings strings, ICoreConfigSection sharpdoxConfig, IBuildController buildController, IBuildMessenger buildMessenger)
        {
            Strings = strings;

            DataContext = new VisibilityViewModel(sharpdoxConfig, buildController, buildMessenger);
            InitializeComponent();
        }
        internal void EnableController(BuildController b, bool started)
        {
            IBuildController bc = buildSrv.GetBuildController(b.Uri, false);

            bc.Enabled = started;

            buildSrv.SaveBuildControllers(new IBuildController[] { bc });
        }
Ejemplo n.º 5
0
        public VisibilityViewModel(SharpDoxConfig sharpDoxConfig, IBuildController buildController, IBuildMessenger buildMessenger)
        {
            _sharpDoxConfig = sharpDoxConfig;
            _buildController = buildController;

            sharpDoxConfig.PropertyChanged += ConfigChanged;
            buildMessenger.OnParseCompleted += ParseCompleted;
        }
Ejemplo n.º 6
0
        public ConfigGridControl(IConfigController configController, IExporter[] allExporters, LocalController localController, IBuildController buildController)
        {
            _allExporters     = allExporters;
            _localController  = localController;
            _configController = configController;
            _buildController  = buildController;

            InitializeComponent();
            InitializeGrid();
        }
Ejemplo n.º 7
0
        public ConfigSectionControl(LocalController localController, ICoreConfigSection coreConfigSection, IExporter[] allExporters, IBuildController buildController)
        {
            _localController   = localController;
            _coreConfigSection = coreConfigSection;
            _allExporters      = allExporters;
            _buildController   = buildController;

            DataContext = this;
            InitializeComponent();
        }
Ejemplo n.º 8
0
        public VisibilityViewModel(ICoreConfigSection sharpDoxConfig, IBuildController buildController, Action onCloseHandle)
        {
            _sharpDoxConfig  = sharpDoxConfig;
            _buildController = buildController;
            _onCloseHandle   = onCloseHandle;

            sharpDoxConfig.PropertyChanged += ConfigChanged;

            buildController.BuildMessenger.OnParseCompleted += ParseCompleted;
            buildController.BuildMessenger.OnParseFailed    += ParseStopped;
        }
        public ConfigVisibilityControl(SDGuiStrings strings, ICoreConfigSection coreConfigSection, IBuildController buildController)
        {
            _strings           = strings;
            _coreConfigSection = coreConfigSection;
            _buildController   = buildController;

            coreConfigSection.PropertyChanged += ExcludedIdentifiersChanged;
            ExcludedIdentifiersChanged(null, null);

            DataContext = this;
            InitializeComponent();
        }
Ejemplo n.º 10
0
        static void BulkUpdateController(IBuildServer buildServer)
        {
            IBuildDefinition[] buildDefinitions = buildServer.QueryBuildDefinitions("Contoso");

            IBuildController defaultBuildController = buildServer.QueryBuildServiceHosts("*")
                                                      .Where(bsh => bsh.Controller != null).Select(bsh => bsh.Controller).First();

            foreach (IBuildDefinition buildDefinition in buildDefinitions)
            {
                buildDefinition.BuildController = defaultBuildController;
                buildDefinition.Save();
            }
        }
        public BuildControllerViewModel(IBuildController controller)
        {
            this.Name = controller.Name;
            this.Tags = string.Empty;
            foreach (var tag in controller.Tags)
            {
                this.Tags += tag + "\n";
            }

            this.Tags = this.Tags.TrimEnd('\n');
            if (string.IsNullOrEmpty(this.Tags))
            {
                this.Tags = "<No Tags>";
            }
        }
Ejemplo n.º 12
0
        public BuildWindow(SDGuiStrings strings, ICoreConfigSection sharpDoxConfig, IBuildController buildController, IBuildMessenger buildMessenger)
        {
            Strings = strings;

            _sharpDoxConfig  = sharpDoxConfig;
            _buildController = buildController;
            _buildMessenger  = buildMessenger;
            _buildMessenger.OnBuildMessage  += BuilderOnMessage;
            _buildMessenger.OnStepMessage   += BuilderOnStepMessage;
            _buildMessenger.OnBuildStopped  += BuilderOnStopped;
            _buildMessenger.OnBuildProgress += BuilderOnBuildProgress;
            _buildMessenger.OnStepProgress  += BuilderOnStepProgress;

            InitializeComponent();
        }
Ejemplo n.º 13
0
        public BuildControllerViewModel(IBuildController controller)
        {
            this.Name = controller.Name;
            this.Tags = string.Empty;
            foreach (var tag in controller.Tags)
            {
                this.Tags += tag + "\n";
            }

            this.Tags = this.Tags.TrimEnd('\n');
            if (string.IsNullOrEmpty(this.Tags))
            {
                this.Tags = "<No Tags>";
            }
        }
Ejemplo n.º 14
0
        public BuildWindow(SDGuiStrings strings, SharpDoxConfig sharpDoxConfig, IBuildController buildController, IBuildMessenger buildMessenger)
        {
            Strings = strings;

            _sharpDoxConfig = sharpDoxConfig;
            _buildController = buildController;
            _buildMessenger = buildMessenger;
            _buildMessenger.OnBuildMessage += BuilderOnMessage;
            _buildMessenger.OnStepMessage += BuilderOnStepMessage;
            _buildMessenger.OnBuildStopped += BuilderOnStopped;
            _buildMessenger.OnBuildProgress += BuilderOnBuildProgress;
            _buildMessenger.OnStepProgress += BuilderOnStepProgress;

            InitializeComponent();
        }
Ejemplo n.º 15
0
        public BuildControllerResourceViewModel(IBuildController controller)
        {
            this.Name = controller.Name;
            this.QueueCount = controller.QueueCount.ToString(CultureInfo.CurrentCulture);
            this.DateCreated = controller.DateCreated;
            this.DateUpdated = controller.DateUpdated;
            this.CustomAssemblyPath = controller.CustomAssemblyPath;
            this.MaxConcurrentBuilds = controller.MaxConcurrentBuilds.ToString(CultureInfo.CurrentCulture);
            this.Status = controller.Status.ToString();
            this.Enabled = controller.Enabled;

               // this.Tags = controller.Tags;
            this.StatusMessage = controller.StatusMessage;
            this.Controller = controller;
            string url = controller.Url.ToString();
            url = url.Substring(url.LastIndexOf(@"/", StringComparison.OrdinalIgnoreCase) + 1, url.Length - url.LastIndexOf(@"/", StringComparison.OrdinalIgnoreCase) - 1);
            this.Id = Convert.ToInt32(url);
        }
Ejemplo n.º 16
0
        public BuildControllerResourceViewModel(IBuildController controller)
        {
            this.Name                = controller.Name;
            this.QueueCount          = controller.QueueCount.ToString(CultureInfo.CurrentCulture);
            this.DateCreated         = controller.DateCreated;
            this.DateUpdated         = controller.DateUpdated;
            this.CustomAssemblyPath  = controller.CustomAssemblyPath;
            this.MaxConcurrentBuilds = controller.MaxConcurrentBuilds.ToString(CultureInfo.CurrentCulture);
            this.Status              = controller.Status.ToString();
            this.Enabled             = controller.Enabled;

            // this.Tags = controller.Tags;
            this.StatusMessage = controller.StatusMessage;
            this.Controller    = controller;
            string url = controller.Url.ToString();

            url     = url.Substring(url.LastIndexOf(@"/", StringComparison.OrdinalIgnoreCase) + 1, url.Length - url.LastIndexOf(@"/", StringComparison.OrdinalIgnoreCase) - 1);
            this.Id = Convert.ToInt32(url);
        }
Ejemplo n.º 17
0
        public void Start(string[] args)
        {
            _arguments = new ConsoleArguments(args);

            if (_arguments["config"] != null)
            {
                _configController.Load(_arguments["config"]);
                _buildController = _builderFactory();

                _buildMessenger.OnBuildMessage += System.Console.WriteLine;

                _buildController.StartBuild(_configController.GetConfigSection<SharpDoxConfig>(), false);
            }
            else
            {
                System.Console.WriteLine(_strings.ConfigMissing + " -config " + _strings.Path);
            }

            System.Console.WriteLine(_strings.PressToEnd);
            System.Console.ReadLine();
        }
Ejemplo n.º 18
0
        public ShellViewModel(SDGuiStrings strings, IConfigController configController, IBuildController buildController, Action onCloseHandle)
        {
            _onCloseHandle   = onCloseHandle;
            _buildController = buildController;
            _buildController.BuildMessenger.OnStepMessage += (s) => StepMessage = s;

            _configController = configController;

            Strings = strings;

            Config         = configController.GetConfigSection <ICoreConfigSection>();
            ConfigSections = configController.GetAllConfigSections().ToList();

            ProgressBarViewModel = new ProgressBarViewModel(buildController, strings);

            _configController.OnRecentProjectsChanged += RecentProjectsChanged;

            _buildWindow = new BuildView(Strings, buildController.BuildMessenger);

            RecentProjectsChanged();
        }
Ejemplo n.º 19
0
        public void Start(string[] args)
        {
            _arguments = new ConsoleArguments(args);

            if (_arguments["config"] != null)
            {
                _configController.Load(_arguments["config"]);
                _buildController = _builderFactory();

                _buildMessenger.OnBuildMessage += System.Console.WriteLine;

                _buildController.StartBuild(_configController.GetConfigSection <ICoreConfigSection>(), false);
            }
            else
            {
                System.Console.WriteLine(_strings.ConfigMissing + " -config " + _strings.Path);
            }

            System.Console.WriteLine(_strings.PressToEnd);
            System.Console.ReadLine();
        }
Ejemplo n.º 20
0
        public ProgressBarViewModel(IBuildController buildController, SDGuiStrings strings)
        {
            _strings        = strings;
            BuildButtonText = strings.Build;

            _buildController = buildController;
            _buildController.BuildMessenger.OnBuildProgress += (i) => { if (i == 0)
                                                                        {
                                                                            ChangeProgress(BuildStatus.Running);
                                                                        }
                                                                        BuildProgress = i; };
            _buildController.BuildMessenger.OnStepProgress += (i) => { StepProgress = i; };

            _buildController.BuildMessenger.OnBuildCompleted += () => { ChangeProgress(BuildStatus.Success); };
            _buildController.BuildMessenger.OnBuildFailed    += () => { ChangeProgress(BuildStatus.Error); };
            _buildController.BuildMessenger.OnBuildStopped   += () => { ChangeProgress(BuildStatus.Stopped); };

            _buildController.BuildMessenger.OnParseCompleted += (rep) => { ChangeProgress(BuildStatus.Success); };
            _buildController.BuildMessenger.OnParseFailed    += () => { ChangeProgress(BuildStatus.Error); };
            _buildController.BuildMessenger.OnParseStopped   += () => { ChangeProgress(BuildStatus.Stopped); };
        }
Ejemplo n.º 21
0
        private Tuple <MetadataItem, bool> GetMetadataFromProjectLevelCache(IBuildController controller, IInputParameters key)
        {
            DateTime triggeredTime     = DateTime.UtcNow;
            var      projectLevelCache = key.Cache;
            var      projectConfig     = key.BuildInfo;
            var      rebuildProject    = _rebuild || projectConfig == null || key.HasChanged(projectConfig);

            MetadataItem projectMetadata;

            if (!rebuildProject)
            {
                // Load from cache
                var cacheFile = Path.Combine(projectConfig.OutputFolder, projectConfig.RelativeOutputFiles.First());
                Logger.Log(LogLevel.Info, $"'{projectConfig.InputFilesKey}' keep up-to-date since '{projectConfig.TriggeredUtcTime.ToString()}', cached intermediate result '{cacheFile}' is used.");
                if (TryParseYamlMetadataFile(cacheFile, out projectMetadata))
                {
                    return(Tuple.Create(projectMetadata, rebuildProject));
                }
                else
                {
                    Logger.Log(LogLevel.Info, $"'{projectConfig.InputFilesKey}' is invalid, rebuild needed.");
                }
            }

            projectMetadata = controller.ExtractMetadata(key);
            var file = Path.GetRandomFileName();
            var cacheOutputFolder = projectLevelCache.OutputFolder;
            var path = Path.Combine(cacheOutputFolder, file);

            YamlUtility.Serialize(path, projectMetadata);
            Logger.Log(LogLevel.Verbose, $"Successfully generated metadata {cacheOutputFolder} for {projectMetadata.Name}");

            // Save to cache
            projectLevelCache.SaveToCache(key.Key, key.Files, triggeredTime, cacheOutputFolder, new List <string>()
            {
                file
            }, key.Options);

            return(Tuple.Create(projectMetadata, rebuildProject));
        }
Ejemplo n.º 22
0
        static void CreateBuildDefinition(IBuildServer buildServer)
        {
            IBuildController defaultBuildController = buildServer.QueryBuildServiceHosts("*")
                                                      .Where(bsh => bsh.Controller != null).Select(bsh => bsh.Controller).First();

            IBuildDefinition buildDefinition = buildServer.CreateBuildDefinition("Contoso");

            buildDefinition.Name = "HelloWorld";
            buildDefinition.ContinuousIntegrationType = ContinuousIntegrationType.Individual;
            buildDefinition.BuildController           = defaultBuildController;
            buildDefinition.DefaultDropLocation       = @"\\CONTOSO\Projects\HelloWorld\drops";

            IRetentionPolicy retentionPolicy = buildDefinition.RetentionPolicyList.Where(
                rp => rp.BuildReason == BuildReason.Triggered ||
                rp.BuildStatus == BuildStatus.Succeeded)
                                               .First();

            retentionPolicy.NumberToKeep  = 2;
            retentionPolicy.DeleteOptions = DeleteOptions.All;

            buildDefinition.Save();
        }
Ejemplo n.º 23
0
        private void UpdateBuildDefinitions()
        {
            try
            {
                using (new WaitCursor())
                {
                    if (this.viewmodel.SelectedBuildView == BuildView.BuildDefinitions)
                    {
                        IEnumerable <IBuildDefinition> builds;
                        if (this.SelectedController == BuildManagerViewModel.AllItem)
                        {
                            builds = this.SelectedTeamProject == BuildManagerViewModel.AllItem ? this.repository.AllBuildDefinitions : this.repository.GetBuildDefinitionsForTeamProject(this.SelectedTeamProject);
                        }
                        else
                        {
                            IBuildController controller = this.repository.GetController(this.SelectedController);
                            builds = this.SelectedTeamProject == BuildManagerViewModel.AllItem ? this.repository.GetBuildDefinitions(controller) : this.repository.GetBuildDefinitions(controller, this.SelectedTeamProject);
                        }

                        builds = this.viewmodel.IncludeDisabledBuildDefinitions ? builds : builds.Where(b => b.QueueStatus == DefinitionQueueStatus.Enabled);
                        this.viewmodel.AssignBuildDefinitions(builds);
                    }
                    else if (this.viewmodel.SelectedBuildView == BuildView.Builds)
                    {
                        this.UpdateBuilds();
                    }
                    else if (this.viewmodel.SelectedBuildView == BuildView.BuildProcessTemplates)
                    {
                        this.UpdateBuildProcessTemplates();
                    }
                }
            }
            catch (Exception ex)
            {
                this.DisplayError(ex);
            }
        }
 public IEnumerable<IBuildDefinition> GetBuildDefinitions(IBuildController controller, string teamProject)
 {
     return this.GetBuildDefinitionsForTeamProject(teamProject).Where(b => b.BuildController != null && b.BuildController.Uri == controller.Uri);
 }
 public IEnumerable<IBuildDefinition> GetBuildDefinitions(IBuildController controller)
 {
     return this.AllBuildDefinitions.Where(bd => bd.BuildControllerUri == controller.Uri);
 }
 public void EnableController(IBuildController controller)
 {
     controller.Enabled = true;
     controller.Save();
 }
 public void DisableController(IBuildController controller)
 {
     controller.Enabled = false;
     controller.Save();
 }
Ejemplo n.º 28
0
 public IBuildDetail CreateManualBuild(string buildNumber, string dropLocation, BuildStatus buildStatus, IBuildController controller, string requestedFor)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 29
0
 public IntermediateMetadataExtractor(IBuildController controller)
 {
     _controller = controller;
 }
Ejemplo n.º 30
0
        public VisibilitySettings(SDGuiStrings strings, ICoreConfigSection sharpdoxConfig, IBuildController buildController, IBuildMessenger buildMessenger)
        {
            Strings = strings;

            DataContext = new VisibilityViewModel(sharpdoxConfig, buildController, buildMessenger);
            InitializeComponent();
        }
Ejemplo n.º 31
0
        public Shell(IConfigController configController, IExporter[] allExporters, LocalController localController, IBuildController buildController)
        {
            var guiStrings = localController.GetLocalStrings <SDGuiStrings>();

            DataContext = new ShellViewModel(guiStrings, configController, buildController, ExecuteOnClose);
            Strings     = guiStrings;

            InitializeComponent();

            svBody.Content = new ConfigGridControl(configController, allExporters, localController, buildController);

            MouseLeftButtonDown += (s, a) => OnMouseDown(s, a);
            MouseLeftButtonUp   += (s, a) => OnMouseUp(s, a);
        }
 public IBuildDetail CreateManualBuild(string buildNumber, string dropLocation, BuildStatus buildStatus, IBuildController controller, string requestedFor)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 33
0
        private void PopulateBuildTemplates(bool resort)
        {
            if (Context.BuildTemplates == null)
            {
                return;
            }

            this.lvBuildTemplates.BeginUpdate();

            BackupSelectedItems(false);

            if (resort)
            {
                SortTemplatesListData();
            }

            this.lvBuildTemplates.Groups.Clear();

            string[] checkedProjects = UIContext.Instance.ControlTeamBuildFilter.CheckedProjects;

            foreach (string teamProject in checkedProjects)
            {
                this.lvBuildTemplates.Groups.Add(teamProject, teamProject);
            }

            this.lvBuildTemplates.Visible = true;
            try
            {
                UIContext.Instance.ProgressBegin(Context.BuildTemplates.Templates.Count, 1);

                this.lvBuildTemplates.Items.Clear();

                List <BuildTemplate> brokenBuildTemplates = new List <BuildTemplate>();

                Context.BuildTemplates.Templates.ForEach(buildTemplate =>
                {
                    //if (this.parentControl.selectedProjects.Contains(buildTemplate.TeamProject))
                    if (UIContext.Instance.ControlTeamBuildFilter.IsCheckedProject(buildTemplate.TeamProject))
                    {
                        bool added = false;

                        try
                        {
                            IBuildController buildController = Context.BuildServer.GetBuildController(new Uri(buildTemplate.BuildControllerUri), false);

                            ListViewItem viewItem = this.lvBuildTemplates.Items.Add(buildTemplate.TemplateName);
                            added        = true;
                            viewItem.Tag = buildTemplate;
                            viewItem.SubItems.Add(buildTemplate.DefinitionName);
                            viewItem.SubItems.Add(buildTemplate.BuildControllerName);
                            //viewItem.SubItems.Add(buildController != null ? buildController.MachineName : string.Empty);
                            viewItem.SubItems.Add(string.Empty);
                            viewItem.SubItems.Add(buildTemplate.DefaultDropLocation);
                            viewItem.SubItems.Add(buildTemplate.CommandLineArguments);
                            viewItem.Group = this.lvBuildTemplates.Groups[buildTemplate.TeamProject];
                        }
                        catch (Exception ex)
                        {
                            brokenBuildTemplates.Add(buildTemplate);

                            if (added)
                            {
                                this.lvBuildTemplates.Items.RemoveAt(this.lvBuildTemplates.Items.Count - 1);
                            }

                            MessageBox.Show(string.Format("Error retrieving information about build template '{0}'.\n\r{1}\n\r\n\rThis build template will be removed from current list.",
                                                          buildTemplate.TemplateName, ex.Message), "Loading build templates", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }

                        UIContext.Instance.ProgressDoStep();
                    }
                });

                if (brokenBuildTemplates.Count > 0)
                {
                    brokenBuildTemplates.ForEach(buildTemplate => Context.BuildTemplates.Templates.Remove(buildTemplate));
                    Context.BuildTemplates.SaveToFile(Context.BuildTemplates.Filename);
                }
            }
            finally
            {
                this.btnExportTemplates.Enabled = this.lvBuildTemplates.Items.Count > 0;

                UIContext.Instance.ProgressEnd();

                this.lvBuildTemplates.EndUpdate();
                RestoreSelectedItems(false);
            }
        }
 public void RemoveBuildController(IBuildController controller)
 {
     this.buildServer.DeleteBuildAgents(controller.Agents.ToArray());
     this.buildServer.DeleteBuildControllers(new[] { controller.Uri });
 }
Ejemplo n.º 35
0
        private void QueueBuildTemplate(BuildTemplate buildTemplate, bool queueingMultiple)
        {
            IBuildDefinition buildDefinition = Context.BuildServer.GetBuildDefinition(buildTemplate.TeamProject,
                                                                                      buildTemplate.DefinitionName);

            bool         started     = buildDefinition != null;
            string       exc_msg     = "-";
            IQueuedBuild queuedBuild = null;

            if (started)
            {
                try
                {
                    IBuildRequest request = buildDefinition.CreateBuildRequest();
                    //IBuildAgent buildAgent = Context.BuildServer.GetBuildAgent(new Uri(buildTemplate.BuildControllerUri));
                    IBuildController buildController = Context.BuildServer.GetBuildController(buildTemplate.BuildControllerName);

                    /*request.BuildAgent = buildAgent;
                     * request.CommandLineArguments = buildTemplate.CommandLineArguments;*/
                    request.BuildController = buildController;

                    BuildProcessParameters buildProcessParameters = buildDefinition.GetBuildProcessParameters();
                    buildProcessParameters.MSBuildArguments = buildTemplate.CommandLineArguments;

                    request.ProcessParameters = buildProcessParameters.SaveToXml();
                    request.DropLocation      = buildTemplate.DefaultDropLocation;
                    request.Postponed         = buildTemplate.Postponed;
                    request.Priority          = buildTemplate.RunPriority;
                    request.RequestedFor      = Context.LoggedUser;

                    queuedBuild = Context.BuildServer.QueueBuild(request);

                    if (!queueingMultiple)
                    {
                        started = queuedBuild.WaitForBuildStart(10000, 10000);
                    }
                }
                catch (Exception e)
                {
                    exc_msg = e.Message;
                }
            }

            if (!queueingMultiple)
            {
                string message = started
                    ? string.Format("Team build template '{0}' started successfully", buildTemplate.TemplateName)
                    : string.Format("Team build template '{0}' failed to start, message: {1}", buildTemplate.TemplateName, exc_msg);

                ToolTipIcon icon    = started ? ToolTipIcon.Info : ToolTipIcon.Warning;
                string      caption = string.Format("Queue team build template '{0}'", buildTemplate.TemplateName);

                UIContext.Instance.ShowTrayTooltip(caption, message, icon, new NavigateToTeamBuildDefinitionHandler(buildTemplate));

                //MessageBox.Show(message, string.Format("Queue team build template '{0}'", buildTemplate.TemplateName), MessageBoxButtons.OK, icon););

                if (started && queuedBuild != null)
                {
                    //this.parentControl.FocusAndSelectTeamBuild(queuedBuild);
                    UIContext.Instance.ControlTeamBuilds.FocusAndSelectTeamBuild(queuedBuild);
                }
            }
        }
Ejemplo n.º 36
0
        public void TestConnection(BuildController b)
        {
            IBuildController bc = buildSrv.GetBuildController(b.Uri, false);

            buildSrv.TestConnectionForBuildController(bc);
        }
Ejemplo n.º 37
0
        private void UpdateBuildDefinitions()
        {
            if (this.SelectedTeamProject == null)
            {
                return;
            }

#if !DEBUG
            try
            {
#endif
            using (new WaitCursor())
            {
                if (this.dispatcherTimer.IsEnabled)
                {
                    this.dispatcherTimer.Stop();
                }

                if (this.viewmodel.SelectedBuildView == BuildView.BuildDefinitions)
                {
                    IEnumerable <IBuildDefinition> builds;
                    if (this.SelectedController == BuildManagerViewModel.AllItem)
                    {
                        builds = this.SelectedTeamProject == BuildManagerViewModel.AllItem ? this.repository.AllBuildDefinitions : this.repository.GetBuildDefinitionsForTeamProject(this.SelectedTeamProject);
                    }
                    else
                    {
                        IBuildController controller = this.repository.GetController(this.SelectedController);
                        builds = this.SelectedTeamProject == BuildManagerViewModel.AllItem ? this.repository.GetBuildDefinitions(controller) : this.repository.GetBuildDefinitions(controller, this.SelectedTeamProject);
                    }

                    builds = this.viewmodel.IncludeDisabledBuildDefinitions ? builds : builds.Where(b => b.QueueStatus != DefinitionQueueStatus.Disabled);
                    if (!string.IsNullOrWhiteSpace(this.viewmodel.BuildDefinitionFilter))
                    {
                        // if it starts with $/ then we seach on workspace mappings
                        if (this.viewmodel.BuildDefinitionFilter.StartsWith(@"$/", StringComparison.OrdinalIgnoreCase))
                        {
                            if (!string.IsNullOrWhiteSpace(this.viewmodel.BuildDefinitionFilter))
                            {
                                List <IBuildDefinition> builds2 = new List <IBuildDefinition>();
                                var filter = this.viewmodel.BuildDefinitionFilter;
                                builds2.AddRange(builds.Where(b => b.Workspace.Mappings.Any(mapping => mapping.ServerItem.StartsWith(filter, StringComparison.OrdinalIgnoreCase))));
                                var buildDefinitions = builds2.ToArray();
                                this.viewmodel.AssignBuildDefinitions(buildDefinitions);
                                this.lblCount.Content = buildDefinitions.Count();
                            }
                        }
                        else if (this.viewmodel.BuildDefinitionFilter.StartsWith(@"*", StringComparison.OrdinalIgnoreCase))
                        {
                            // if it starts with * then we are going to search Process Parameters
                            if (this.viewmodel.BuildDefinitionFilter == "*" || this.viewmodel.BuildDefinitionFilter == "**")
                            {
                                return;
                            }

                            List <IBuildDefinition> builds2 = new List <IBuildDefinition>();
                            foreach (IBuildDefinition b in builds)
                            {
                                var processParameters = WorkflowHelpers.DeserializeProcessParameters(b.ProcessParameters);

                                // if it starts with ** we do a contains, otherwise it starts with * and we do a compare.
                                if (this.viewmodel.BuildDefinitionFilter.StartsWith(@"**", StringComparison.OrdinalIgnoreCase))
                                {
                                    bool found = false;
                                    foreach (var parameter in processParameters)
                                    {
                                        // some process parameters are arrays so we need to look at each key value pair in the arrays
                                        if (parameter.Value.GetType().GetElementType() == typeof(string))
                                        {
                                            string[] arr = ((IEnumerable)parameter.Value).Cast <object>().Select(x => x.ToString()).ToArray();
                                            if (arr.Any(s => s.IndexOf(this.viewmodel.BuildDefinitionFilter.Replace("*", string.Empty), StringComparison.OrdinalIgnoreCase) >= 0))
                                            {
                                                builds2.Add(b);
                                                found = true;
                                            }
                                        }
                                        else
                                        {
                                            if (parameter.Value.ToString().IndexOf(this.viewmodel.BuildDefinitionFilter.Replace("*", string.Empty), StringComparison.OrdinalIgnoreCase) >= 0)
                                            {
                                                builds2.Add(b);
                                                found = true;
                                            }
                                        }

                                        if (!found && this.viewmodel.BuildDefinitionFilter.StartsWith(@"***", StringComparison.OrdinalIgnoreCase))
                                        {
                                            Regex r     = new Regex(@"<this:Process\..*>*" + this.viewmodel.BuildDefinitionFilter.Replace("*", string.Empty) + ".*</", RegexOptions.IgnoreCase);
                                            Match match = r.Match(b.Process.Parameters);
                                            if (match.Success)
                                            {
                                                builds2.Add(b);
                                                found = true;
                                            }
                                        }

                                        if (found)
                                        {
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    bool found = false;
                                    foreach (var parameter in processParameters)
                                    {
                                        if (parameter.Value.GetType().GetElementType() == typeof(string))
                                        {
                                            string[] arr = ((IEnumerable)parameter.Value).Cast <object>()
                                                           .Select(x => x.ToString())
                                                           .ToArray();

                                            if (arr.Any(s => string.Compare(s, this.viewmodel.BuildDefinitionFilter.Replace("*", string.Empty), StringComparison.OrdinalIgnoreCase) == 0))
                                            {
                                                builds2.Add(b);
                                                found = true;
                                            }
                                        }
                                        else
                                        {
                                            if (string.Compare(parameter.Value.ToString(), this.viewmodel.BuildDefinitionFilter.Replace("*", string.Empty), StringComparison.OrdinalIgnoreCase) == 0)
                                            {
                                                builds2.Add(b);
                                                found = true;
                                            }
                                        }

                                        if (found)
                                        {
                                            break;
                                        }
                                    }
                                }
                            }

                            var buildDefinitions = builds2.ToArray();
                            this.viewmodel.AssignBuildDefinitions(buildDefinitions);
                            this.lblCount.Content = buildDefinitions.Count();
                        }
                        else
                        {
                            var filter = this.viewmodel.BuildDefinitionFilter.ToUpperInvariant();
                            builds = builds.Where(b => b.Name.ToUpperInvariant().Contains(filter)).ToArray();
                            var buildDefinitions = builds as IBuildDefinition[];
                            this.viewmodel.AssignBuildDefinitions(buildDefinitions);
                            this.lblCount.Content = buildDefinitions.Count();
                        }
                    }
                    else
                    {
                        var buildDefinitions = builds as IBuildDefinition[] ?? builds.ToArray();
                        this.viewmodel.AssignBuildDefinitions(buildDefinitions);
                        this.lblCount.Content = buildDefinitions.Count();
                    }
                }
                else if (this.viewmodel.SelectedBuildView == BuildView.Builds)
                {
                    this.UpdateBuilds();
                }
                else if (this.viewmodel.SelectedBuildView == BuildView.BuildProcessTemplates)
                {
                    this.UpdateBuildProcessTemplates();
                }
                else if (this.viewmodel.SelectedBuildView == BuildView.BuildResources)
                {
                    this.UpdateBuildResources();
                }
            }
#if !DEBUG
        }

        catch (Exception ex)
        {
            this.DisplayError(ex);
        }
#endif
        }
Ejemplo n.º 38
0
 private static DirectedGraphNode CreateControllerNode(IBuildController controller)
 {
     return(new DirectedGraphNode {
         Id = controller.Name, Label = controller.Name, Category1 = controller.Enabled ? BuildControllerCategory : DisabledBuildControllerCategory
     });
 }
Ejemplo n.º 39
0
 private static DirectedGraphNode CreateControllerNode(IBuildController controller)
 {
     return new DirectedGraphNode { Id = controller.Name, Label = controller.Name, Category1 = controller.Enabled ? BuildControllerCategory : DisabledBuildControllerCategory };
 }
 internal IQueuedBuild[] GetBuildQueue(IBuildController controller)
 {
     List<IQueuedBuild> queuedBuilds = new List<IQueuedBuild>(GetBuildQueue());
     return queuedBuilds.Where(build => build.BuildControllerUri == controller.Uri).ToArray();
 }
 public IEnumerable <IBuildDefinition> GetBuildDefinitions(IBuildController controller)
 {
     return(this.AllBuildDefinitions.Where(bd => bd.BuildControllerUri == controller.Uri));
 }
        public VisibilityEditorView(SDGuiStrings strings, ICoreConfigSection sharpdoxConfig, IBuildController buildController)
        {
            Strings = strings;

            DataContext = new VisibilityViewModel(sharpdoxConfig, buildController, Hide);
            InitializeComponent();

            MouseLeftButtonDown += (s, a) => DragMove();
        }
 public IEnumerable <IBuildDefinition> GetBuildDefinitions(IBuildController controller, string teamProject)
 {
     return(this.GetBuildDefinitionsForTeamProject(teamProject).Where(b => b.BuildController != null && b.BuildController.Uri == controller.Uri));
 }
Ejemplo n.º 44
0
 public void DisableController(IBuildController controller)
 {
     controller.Enabled = false;
     controller.Save();
 }