Inheritance: MonoBehaviour
        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);
            }
        }
Esempio n. 4
0
            public StepIntoRequestedEventArgs(ProjectBuild projectBuild)
            {
                if (projectBuild == null)
                {
                    throw new ArgumentNullException(nameof(projectBuild));
                }

                this.ProjectBuild = projectBuild;
            }
Esempio n. 5
0
 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;
 }
Esempio n. 6
0
 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);
     }
 }
Esempio n. 7
0
        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);
            }
        }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 9
0
    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();
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
    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();
    }
Esempio n. 14
0
        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);
            }
        }
Esempio n. 15
0
 private void BuildIPA(BuildData buildData)
 {
     Debug.Log(buildData.ToString("IOS"));
     ProjectBuild.AutoProjectBuildIOS(GetResType(buildData), buildData.ChannelType);
 }
 public void Add(ProjectBuild entity)
 {
     _context.Add(entity);
 }
Esempio n. 17
0
 private void BuildAPK(BuildData buildData)
 {
     Debug.Log(buildData.ToString("Android"));
     ProjectBuild.AutoProjectBuildAndroid(GetResType(buildData), buildData.ChannelType);
 }
 public void Remove(ProjectBuild entity)
 {
     _context.Remove(entity);
 }