public void StepInto(ProjectBuild projectBuild) { if (projectBuild == null) { throw new ArgumentNullException(nameof(projectBuild)); } this.stack.Clear(); ProjectBuild[] path = this.rootProjectBuild.GetPathTo(projectBuild) ?? new[] { this.rootProjectBuild, projectBuild }; foreach (ProjectBuild p in path) { this.stack.Push(p); } this.UpdateBreadcrumb(); this.UpdateBuildTimelineListBox(projectBuild); BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault(); if (firstBt != null) { this.BuildTimelineListBox.SelectedItem = firstBt; this.BuildTimelineListBox.UpdateLayout(); ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt); listBoxItem.Focus(); } }
private void StepInto() { BuildTimeline bt = this.BuildTimelineListBox.SelectedItem as BuildTimeline; if (bt == null || bt.Build.Kind != BuildKind.Project) { return; } ProjectBuild build = (ProjectBuild)bt.Build; this.stack.Push(build); this.UpdateBreadcrumb(); this.UpdateBuildTimelineListBox(build); BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault(); if (firstBt != null) { this.BuildTimelineListBox.SelectedItem = firstBt; this.BuildTimelineListBox.UpdateLayout(); ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt); listBoxItem.Focus(); } }
public void SetRootProjectBuild(ProjectBuild rootProjectBuild) { var targetBuildGroups = rootProjectBuild.GetAllTargetBuilds() .GroupBy(targetBuild => targetBuild.Name) .Select( targetBuildGroup => new { Name = targetBuildGroup.Key, Duration = new TimeSpan(targetBuildGroup.Sum(targetBuild => targetBuild.Duration.Ticks)), Count = targetBuildGroup.Count(), RealWork = targetBuildGroup.Any(x => x.RealWork) }) .ToList(); TimeSpan maxDuration = targetBuildGroups.Max(targetBuildGroup => targetBuildGroup.Duration); IEnumerable <TargetSummary> targetSummaries = targetBuildGroups.Select( targetBuildGroup => new TargetSummary { Name = Path.GetFileName(targetBuildGroup.Name), Duration = $"{targetBuildGroup.Duration.TotalSeconds:0.00} s", Count = $"{targetBuildGroup.Count}x", DurationRatio = targetBuildGroup.Duration.TotalSeconds / maxDuration.TotalSeconds, Opacity = targetBuildGroup.RealWork ? 1.0 : 0.5 }); this.TargetSummaryListBox.Items.Clear(); foreach (TargetSummary ts in targetSummaries.OrderByDescending(x => x.DurationRatio)) { this.TargetSummaryListBox.Items.Add(ts); } }
public StepIntoRequestedEventArgs(ProjectBuild projectBuild) { if (projectBuild == null) { throw new ArgumentNullException(nameof(projectBuild)); } this.ProjectBuild = projectBuild; }
public AppVeyorBuildStatus(string buildUrl, Project project, ProjectBuild build, BuildDefinitionSetting buildDefinitionSetting) { BuildDefinitionId = buildDefinitionSetting.Id; Name = "{0} ({1})".Fmt(project.Name, build.Version); BuildStatusEnum = BuildStatusEnum.Unknown; StartedTime = build.Started; FinishedTime = build.Finished; BuildStatusMessage = build.Status; Url = buildUrl; BuildId = build.BuildId; BuildStatusEnum = ToBuildStatusEnum(build.Status); RequestedBy = (string.IsNullOrEmpty(build.AuthorName)) ? build.AuthorName : build.CommitterName; Comment = build.Message; }
private void BuilsAllIPA() { if (!EditorUtility.DisplayDialog("自动打加入了构建队列的包", "打包时间比较长,确定启动打包流程吗?", "确定", "取消")) { return; } foreach (var buildData in buildDatas) { if (!buildData.BJoinBuildQueue) { continue; } Debug.Log(buildData.ToString("IOS")); ProjectBuild.AutoProjectBuildAll(true, GetResType(buildData), buildData.ChannelType); } }
private void OpenLogFileButton_OnClick(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog { CheckFileExists = true, CheckPathExists = true, Filter = "All files (*.*)|*.*", InitialDirectory = Path.Combine(Environment.CurrentDirectory, "Logs") }; if (ofd.ShowDialog(this) == true) { ProjectBuild rootProjectBuild = BuildLogParser.GetProjectBuild(ofd.FileName); this.Title = $"MSBuild Log Analyzer - {Path.GetFileName(ofd.FileName)}"; this.TimelineTab.SetRootProjectBuild(rootProjectBuild); this.ProjectSummaryTab.SetRootProjectBuild(rootProjectBuild); this.ProjectTimelineTab.SetRootProjectBuild(rootProjectBuild); this.TargetSummaryTab.SetRootProjectBuild(rootProjectBuild); } }
public void SetRootProjectBuild(ProjectBuild rootProjectBuild) { List <ProjectBuild> projectBuilds = rootProjectBuild.GetAllMergedRealProjectBuilds().ToList(); TimeSpan maxDuration = projectBuilds.Max(projectBuild => projectBuild.RealDuration); IEnumerable <ProjectSummary> buildTimelines = projectBuilds.Select( projectBuild => new ProjectSummary { ProjectBuild = projectBuild, Name = Path.GetFileName(projectBuild.Name), Duration = $"{projectBuild.RealDuration.TotalSeconds:0.00} s", DurationRatio = projectBuild.RealDuration.TotalSeconds / maxDuration.TotalSeconds, }); this.ProjectSummaryListBox.Items.Clear(); foreach (ProjectSummary ps in buildTimelines.OrderByDescending(x => x.DurationRatio)) { this.ProjectSummaryListBox.Items.Add(ps); } }
public void OnGUI() { GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); { GUILayout.Label("要生成的版本号:"); mDefVersion = GUILayout.TextField(mDefVersion); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { misPublic = GUILayout.Toggle(misPublic, "是否是发布版本"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { buildCfg = EditorGUILayout.ObjectField(new GUIContent("要生成的版本信息"), buildCfg, typeof(BuildCollectionResInfo), false) as BuildCollectionResInfo; } GUILayout.EndHorizontal(); if (GUILayout.Button("生成")) { if (buildCfg == null) { if (UnityEditor.EditorUtility.DisplayDialog("错误", "请选择要发布的东西", "确认")) { Debug.LogError("------------------"); } } else { ProjectBuild.BuildPCALL(mDefVersion, misPublic, buildCfg); } } } GUILayout.EndVertical(); }
private void UpdateBuildTimelineListBox(ProjectBuild build) { this.BuildTimelineListBox.Items.Clear(); IEnumerable <BuildTimeline> buildTimelines = build.ChildBuilds.Select( childBuild => new BuildTimeline { Build = childBuild, StartedAt = childBuild.StartedAt, CompletedAt = childBuild.CompletedAt, Duration = $"{(int)childBuild.Duration.TotalMilliseconds} ms", Name = childBuild.ShortName, FontWeight = childBuild.Kind == BuildKind.Project ? FontWeights.Bold : FontWeights.Normal, ParentStartedAt = build.StartedAt, ParentCompletedAt = build.CompletedAt }); foreach (BuildTimeline bt in buildTimelines.OrderBy(x => x.Build.StartedAt)) { this.BuildTimelineListBox.Items.Add(bt); } }
public void SetRootProjectBuild(ProjectBuild rootProjectBuild) { if (rootProjectBuild == null) { throw new ArgumentNullException(nameof(rootProjectBuild)); } this.rootProjectBuild = rootProjectBuild; this.stack.Clear(); this.stack.Push(this.rootProjectBuild); this.UpdateBreadcrumb(); this.UpdateBuildTimelineListBox(this.rootProjectBuild); BuildTimeline firstBt = this.BuildTimelineListBox.Items.OfType <BuildTimeline>().FirstOrDefault(); if (firstBt != null) { this.BuildTimelineListBox.SelectedItem = firstBt; this.BuildTimelineListBox.UpdateLayout(); ListBoxItem listBoxItem = (ListBoxItem)this.BuildTimelineListBox.ItemContainerGenerator.ContainerFromItem(firstBt); listBoxItem?.Focus(); } }
public async Task <Unit> Handle(BuildProjectCmd request, CancellationToken cancellationToken) { var project = await _projectRepository.FindAsync(request.ProjectId) ?? throw new EntityNotFoundException("Project not found"); if (project.SelfHostSettings?.BuildConfiguration == null) { throw new BusinessLogicException("No self host settings"); } var build = new ProjectBuild(request.ProjectId, BuildType.SelfHost, (int?)project.SelfHostSettings.BuildConfiguration); _buildsRepository.Add(build); await _buildsRepository.UnitOfWork.SaveChangesAsync(cancellationToken); if (request.Type == BuildType.SelfHost) { await _mediator.Publish(new MqEventNotification(new RequiresSelfHostBuildingMessage { BuildId = build.Id, SelfHostConfiguration = build.SelfHostConfiguration.Value }), cancellationToken); } return(Unit.Value); }
public override void OnInspectorGUI() { GUILayout.BeginHorizontal(); { GUILayout.Label("当前平台:" + EditorUserBuildSettings.activeBuildTarget); } GUILayout.EndHorizontal(); GUILayout.Space(30); base.OnInspectorGUI(); serializedObject.Update(); serializedObject.ApplyModifiedPropertiesWithoutUndo(); EditorUtility.SetDirty(target); GUILayout.BeginVertical(); GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.Label("要生成的版本号:"); ProjectBuild.version = GUILayout.TextField(ProjectBuild.version); ProjectBuild.isPublic = GUILayout.Toggle(ProjectBuild.isPublic, "是否是发布版本"); //GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); { if (GUILayout.Button("生成AssetBunld")) { Instance.Build(); } if (GUILayout.Button("生成AB和当前平台的包")) { ProjectBuild.BuildPCALL(); } } GUILayout.EndHorizontal(); GUILayout.EndVertical(); }
public void SetRootProjectBuild(ProjectBuild rootProjectBuild) { IEnumerable <ProjectTimeline> projectTimelines = rootProjectBuild.GetAllMergedRealProjectBuilds() .Select( projectBuild => new ProjectTimeline { ProjectBuild = projectBuild, Name = projectBuild.ShortName, RealWork = projectBuild.RealWork, StartedAt = projectBuild.StartedAt, CompletedAt = projectBuild.CompletedAt, Duration = $"{projectBuild.RealDuration.TotalSeconds:0.00} s", RootStartedAt = rootProjectBuild.StartedAt, RootCompletedAt = rootProjectBuild.CompletedAt }); this.ProjectTimelineListBox.Items.Clear(); foreach (ProjectTimeline pt in projectTimelines.OrderBy(x => x.CompletedAt)) { this.ProjectTimelineListBox.Items.Add(pt); } }
private void BuildIPA(BuildData buildData) { Debug.Log(buildData.ToString("IOS")); ProjectBuild.AutoProjectBuildIOS(GetResType(buildData), buildData.ChannelType); }
public void Add(ProjectBuild entity) { _context.Add(entity); }
private void BuildAPK(BuildData buildData) { Debug.Log(buildData.ToString("Android")); ProjectBuild.AutoProjectBuildAndroid(GetResType(buildData), buildData.ChannelType); }
public void Remove(ProjectBuild entity) { _context.Remove(entity); }