public static BuildTemplate DialogShow(BuildTemplate editTemplate, IBuildDefinition buildDefinition, FormActionMode mode) { bool saveChanges; return(DialogShow(editTemplate, buildDefinition, mode, out saveChanges)); }
public void FocusAndSelectBuildTemplate(BuildTemplate buildTemplate) { EnsureSelectedTeamProject(buildTemplate.TeamProject, false); ButtonClick(this.btnBuildDefinitions, EventArgs.Empty); this.controlDefinitions.FocusAndSelectBuildTemplate(buildTemplate); }
public void TestingFullSetup() { var template = new BuildTemplate { BuildId = "bt1", BuildName = "Build1", BuildCount = 15, BuildNumberPattern = "1.{0}", StartBuildNumber = 2, FinishBuildNumber = 4, StartBuildPackages = new Dictionary <string, string> { { "Package1", "1.0" }, { "Package2", "1.0" } }, FinishBuildPackages = new Dictionary <string, string> { { "Package1", "1.1" }, { "Package2", "1.0" } }, IssueCount = 5, NestedIssueDepth = 1, NestedIssueChance = 80, CreateNuGetPackageChangeManifests = true }; var resolver = TestHelpers.CreateMockedAggregateBuildDeltaResolver(new[] { template }); var result = resolver.CreateChangeManifestFromBuildTypeId("bt1", null, "1.2", "1.4", false, true); //Assert Assert.AreEqual(2, result.ChangeDetails.Count); Assert.AreEqual(2, result.NuGetPackageChanges.Count); }
void FormatReportGUI(BuildTemplate template, BuildReport report) { var summary = report.summary; if (template != null) { GUILayout.Label($"{(template.Name == string.Empty? template.name : template.Name)} {(template.Category == string.Empty?"":$"({template.Category})")}", Styles.boldLabelLarge); }
public static BuildTemplate CreateAssetAtPath(string path) { BuildTemplate asset = ScriptableObject.CreateInstance <BuildTemplate>(); asset.name = Path.GetFileName(path); AssetDatabase.CreateAsset(asset, path); return(asset); }
public void FocusAndSelectBuildTemplate(BuildTemplate buildTemplate) { this.lvBuildTemplates.SelectedItems.Clear(); SelectBuildTemplates(new List <BuildTemplate> { buildTemplate }); }
void MenuSetProfile(object o) { CurrentProfile = (BuildProfile)o; if (CurrentTemplate != null && !CurrentTemplate.name.EndsWith("*")) { CurrentTemplate = Instantiate <BuildTemplate>(CurrentTemplate) as BuildTemplate; CurrentTemplate.name += "*"; } CurrentTemplate.Profile = CurrentProfile; }
void MenuSetSceneList(object o) { CurrentSceneList = (SceneList)o; if (CurrentTemplate != null && !CurrentTemplate.name.EndsWith("*")) { CurrentTemplate = Instantiate <BuildTemplate>(CurrentTemplate) as BuildTemplate; CurrentTemplate.name += "*"; } CurrentTemplate.SceneList = CurrentSceneList; }
public void Execute(ServiceObject service) { BuildTemplate.CreateProxyClass(service); var projectPath = String.Format("{0}/{1}.csproj", service.Path, service.Name); BuildTemplate.Restore(@"\Modules\Build\Resource\nuget.exe", projectPath); BuildTemplate.Build(projectPath, service.MsBuildPath); BuildSite.Create(service.Name, service.Port, service.IISPath); var binWebSitePath = String.Format("{0}/{1}", service.IISPath, service.Name); BuildTemplate.MoveBin(service.Path, binWebSitePath); }
public static BuildTemplate DialogShow(BuildTemplate editTemplate, IBuildDefinition buildDefinition, FormActionMode mode, out bool saveChanges) { if (form == null) { form = new FormBuildTemplateEdit(); } if (mode == FormActionMode.New) { editTemplate = new BuildTemplate(buildDefinition); } else { editTemplate = editTemplate.Clone(); } form.editTemplate = editTemplate; form.buildDefinition = buildDefinition; form.mode = mode; form.Initialize(); BuildTemplate result = null; saveChanges = false; if (form.ShowDialog() == DialogResult.OK) { editTemplate.TemplateName = form.edName.Text; editTemplate.Description = form.edDescription.Text; editTemplate.TeamProject = form.cmbTeamProject.SelectedItem as string; editTemplate.DefinitionName = form.SelectedDefinitionName; editTemplate.BuildControllerName = form.SelectedBuildController; editTemplate.BuildControllerUri = form.SelectedBuildControllerUri; editTemplate.DefaultDropLocation = form.edDropFolder.Text; editTemplate.RunPriority = (QueuePriority)Enum.Parse(typeof(QueuePriority), form.cmbPriority.SelectedItem as string, true); editTemplate.CommandLineArguments = form.edCmdArgs.Text; editTemplate.Postponed = form.chPostponed.Checked; result = editTemplate; saveChanges = form.chSaveChanges.Checked; } return(result); }
void PopulateAssets() { var buildTemplates = AssetDatabase.FindAssets("t:BuildTemplate"); var buildProfiles = AssetDatabase.FindAssets("t:BuildProfile"); var sceneLists = AssetDatabase.FindAssets("t:SceneList"); m_BuildTemplates = new Dictionary <string, List <BuildTemplate> >(); m_BuildProfiles = new List <BuildProfile>(); m_SceneLists = new List <SceneList>(); TemplateMenu = new GenericMenu(); foreach (var templateGUID in buildTemplates) { string templatePath = AssetDatabase.GUIDToAssetPath(templateGUID); BuildTemplate template = (BuildTemplate)AssetDatabase.LoadAssetAtPath(templatePath, typeof(BuildTemplate)); if (!m_BuildTemplates.ContainsKey(template.Category)) { m_BuildTemplates.Add(template.Category, new List <BuildTemplate>()); } m_BuildTemplates[template.Category].Add(template); TemplateMenu.AddItem(new GUIContent(template.MenuEntry), false, MenuSetTemplate, template); } ProfileMenu = new GenericMenu(); foreach (var profileGUID in buildProfiles) { string profilePath = AssetDatabase.GUIDToAssetPath(profileGUID); BuildProfile profile = (BuildProfile)AssetDatabase.LoadAssetAtPath(profilePath, typeof(BuildProfile)); m_BuildProfiles.Add(profile); ProfileMenu.AddItem(new GUIContent(profile.MenuEntry), false, MenuSetProfile, profile); } SceneListMenu = new GenericMenu(); foreach (var sceneListGUID in sceneLists) { string sceneListPath = AssetDatabase.GUIDToAssetPath(sceneListGUID); SceneList sceneList = (SceneList)AssetDatabase.LoadAssetAtPath(sceneListPath, typeof(SceneList)); m_SceneLists.Add(sceneList); SceneListMenu.AddItem(new GUIContent(sceneList.MenuEntry), false, MenuSetSceneList, sceneList); } }
private void mniCreateBuildTemplate_Click(object sender, EventArgs e) { if (Context.BuildTemplates == null) { MessageBox.Show( "Use 'Open Templates' or 'New Templates' to setup storage for team build templates first.", "Team build templates", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var definition = (IBuildDefinition)this.lvDefinitions.SelectedItems[0].Tag; BuildTemplate buildTemplate = FormBuildTemplateEdit.DialogShow(null, definition, FormActionMode.New); if (buildTemplate != null) { Context.BuildTemplates.Templates.Add(buildTemplate); Context.BuildTemplates.SaveToFile(Context.BuildTemplates.Filename); PopulateBuildTemplates(true); SelectBuildTemplate(buildTemplate); } }
private void mniChangeDefaultDropLocation_Click(object sender, EventArgs e) { if (lvBuildTemplates.SelectedIndices.Count == 0) { return; } BuildTemplate buildTemplate = lvBuildTemplates.SelectedItems[0].Tag as BuildTemplate; string newValue = buildTemplate.DefaultDropLocation; if (FormEditBox.DialogShow("Change Default Drop Location", "Enter new default drop location", "Ok", null, true, true, ref newValue) == DialogResult.OK) { var buildTemplates = this.lvBuildTemplates.SelectedItems.ToCollection(o => (o as ListViewItem).Tag as BuildTemplate); MakeMultipleChangesOnBuildTemplates(buildTemplates, true, delegate(BuildTemplate template) { template.DefaultDropLocation = newValue; }); } }
private void mniQueueMultiBuildTemplate_Click(object sender, EventArgs e) { Dictionary <string, BuildTemplate> buildTemplates = new Dictionary <string, BuildTemplate>(); List <string> buildTemplateNames = new List <string>(); foreach (ListViewItem item in this.lvBuildTemplates.SelectedItems) { BuildTemplate buildTemplate = item.Tag as BuildTemplate; string name = string.Format("{0} ({1})", buildTemplate.TemplateName, buildTemplate.TeamProject); buildTemplates.Add(name, buildTemplate); buildTemplateNames.Add(name); } if (FormCheckedList.DialogShow("Queue Multiple Team Build Templates", "Select which team build templates will be queued at once:", buildTemplateNames, true)) { foreach (string itemName in buildTemplateNames) { BuildTemplate buildTemplate = buildTemplates[itemName]; QueueBuildTemplate(buildTemplate, true); } } }
void MenuSetTemplate(object o) { CurrentTemplate = (BuildTemplate)o; CurrentProfile = CurrentTemplate.Profile; CurrentSceneList = CurrentTemplate.SceneList; }
private void OnGUI() { System.Action nextAction = null; using (new GUILayout.HorizontalScope(GUILayout.Height(88))) { var rect = GUILayoutUtility.GetRect(88, 88, Styles.Icon, GUILayout.Width(88)); GUI.DrawTexture(rect, Contents.icon); using (new GUILayout.VerticalScope()) { GUILayout.Space(8); GUILayout.Label(Contents.title, Styles.Title); GUILayout.FlexibleSpace(); DrawProgressBar(); GUILayout.Space(8); } GUILayout.Space(8); using (new GUILayout.VerticalScope(GUILayout.Width(116))) { GUILayout.Space(8); if (GUILayout.Button("Build All", Styles.BuildButton, GUILayout.Height(32))) { // Run Build nextAction = DoAllBuild; } BuildTemplate template = (Selection.activeObject as BuildTemplate); GUILayout.Space(2); using (new GUILayout.HorizontalScope()) { EditorGUI.BeginDisabledGroup(template == null); if (GUILayout.Button("Build Selected", Styles.MiniButtonLeft)) { nextAction = () => { var report = template.DoBuild(); if (report != null) { Reports[template] = report; } m_SelectedReport = report; Repaint(); }; } if (GUILayout.Button("+ Run", Styles.MiniButtonRight, GUILayout.Width(48))) { nextAction = () => { var report = template.DoBuild(true); if (report != null) { Reports[template] = report; } m_SelectedReport = report; Repaint(); }; } } EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(template == null || !template.canRunBuild); if (GUILayout.Button("Run Last Build", Styles.MiniButton)) { nextAction = () => { template.RunBuild(); EditorUtility.ClearProgressBar(); Repaint(); }; } EditorGUI.EndDisabledGroup(); } GUILayout.Space(8); } using (new GUILayout.HorizontalScope(EditorStyles.toolbar)) { if (GUILayout.Button("Refresh", EditorStyles.toolbarButton)) { PopulateAssets(); } GUILayout.FlexibleSpace(); } using (new GUILayout.HorizontalScope()) { DrawTemplateList(); DrawReport(); } if (nextAction != null) { var selected = Selection.activeObject; nextAction.Invoke(); Selection.activeObject = selected; } }
public NavigateToTeamBuildDefinitionHandler(BuildTemplate buildTemplate) { this.buildTemplate = buildTemplate; }
private void QueueBuildTemplate(BuildTemplate buildTemplate) { QueueBuildTemplate(buildTemplate, false); }
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); } } }
public override void Action(int instanceId, string pathName, string resourceFile) { BuildTemplate asset = BuildTemplateAssetFactory.CreateAssetAtPath(pathName); ProjectWindowUtil.ShowCreatedAsset(asset); }
private void SelectBuildTemplate(BuildTemplate buildTemplate) { SelectBuildTemplates(new List <BuildTemplate> { buildTemplate }); }