Ejemplo n.º 1
0
        public void GetBuildResult_WithoutBuildConfiguration_IsNull()
        {
            BuildArtifacts.Store(BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration), new IBuildArtifact[] { });
            var result = BuildArtifacts.GetBuildResult(null);

            Assert.That(result, Is.Null);
        }
        public void GetBuildArtifact_ReturnNull_WithWrongType()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildSettings);

            BuildArtifacts.Store(result, new[] { new TestArtifacts() });
            Assert.That(BuildArtifacts.GetBuildArtifact <TestArtifacts2>(m_BuildSettings), Is.Null);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Queues and builds multiple builds. For builds requiring explicit active Editor build target, this function also switches Editor build target before starting the build.
        /// That's why there's no return result here, because the build won't be executed immediately in some cases
        /// </summary>
        internal static void BuildAsync(BuildBatchDescription buildBatchDescription)
        {
            var buildEntities = buildBatchDescription.BuildItems;
            // ToDo: when running multiple builds, should we stop at first failure?
            var buildPipelineResults = new BuildPipelineResult[buildEntities.Length];

            for (int i = 0; i < buildEntities.Length; i++)
            {
                var settings = buildEntities[i].BuildSettings;
                var pipeline = settings.GetBuildPipeline();
                if (!settings.CanBuild(out var reason))
                {
                    buildPipelineResults[i] = BuildPipelineResult.Failure(pipeline, settings, reason);
                }
                else
                {
                    buildPipelineResults[i] = null;
                }
            }


            var queue = BuildQueue.instance;

            for (int i = 0; i < buildEntities.Length; i++)
            {
                var settings = buildEntities[i].BuildSettings;
                var pipeline = settings.GetBuildPipeline();
                queue.QueueBuild(settings, buildPipelineResults[i]);
            }

            queue.FlushBuilds(buildBatchDescription.OnBuildCompleted);
        }
        public void GetBuildArtifact()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildSettings);

            BuildArtifacts.Store(result, new[] { new TestArtifacts() });
            Assert.That(BuildArtifacts.GetBuildArtifact <TestArtifacts>(m_BuildSettings), Is.Not.Null);
        }
Ejemplo n.º 5
0
        public void QueueBuild(BuildSettings buildSettings, BuildPipelineResult buildPipelineResult)
        {
            if (m_PrepareQueueBuilds == null)
            {
                m_PrepareQueueBuilds = new List <QueuedBuild>();
            }

            if (buildSettings == null)
            {
                throw new ArgumentNullException(nameof(buildSettings));
            }
            var b = new QueuedBuild();

            b.requiredActiveTarget = GetRequiredEditorTarget(buildSettings);
            b.buildSettingsGuid    = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(buildSettings));

            if (m_QueueBuilds.Count > 0)
            {
                buildPipelineResult = BuildPipelineResult.Failure(buildSettings.GetBuildPipeline(), buildSettings, "Can't queue builds while executing build.");
            }

            // If the build failed in previous step, don't execute it
            if (buildPipelineResult != null && buildPipelineResult.Failed)
            {
                b.buildFinished = true;
            }
            else
            {
                b.buildFinished = false;
            }

            b.buildPipelineResult = buildPipelineResult != null?JsonSerialization.Serialize(buildPipelineResult) : string.Empty;

            m_PrepareQueueBuilds.Add(b);
        }
Ejemplo n.º 6
0
        public void GetBuildResult_IsValid()
        {
            BuildArtifacts.Store(BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration), new IBuildArtifact[] { });
            var result = BuildArtifacts.GetBuildResult(m_BuildConfiguration);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Succeeded, Is.True);
        }
Ejemplo n.º 7
0
        public void GetBuildArtifact_WithBuildArtifactTypeNotFound_IsNull()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration);

            BuildArtifacts.Store(result, new[] { new TestArtifactA() });
            Assert.That(File.Exists(BuildArtifacts.GetArtifactPath(m_BuildConfiguration)), Is.True);
            Assert.That(BuildArtifacts.GetBuildArtifact <TestArtifactB>(m_BuildConfiguration), Is.Null);
        }
Ejemplo n.º 8
0
        public void GetBuildArtifact_WithoutBuildArtifacts_IsNull()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration);

            BuildArtifacts.Store(result, new IBuildArtifact[] { });
            Assert.That(File.Exists(BuildArtifacts.GetArtifactPath(m_BuildConfiguration)), Is.True);
            Assert.That(BuildArtifacts.GetBuildArtifact <TestArtifactA>(m_BuildConfiguration), Is.Null);
        }
        public void GetBuildResult()
        {
            BuildArtifacts.Store(BuildPipelineResult.Success(m_BuildPipeline, m_BuildSettings), new IBuildArtifact[] { });

            var result = BuildArtifacts.GetBuildResult(m_BuildSettings);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Succeeded, Is.True);
        }
Ejemplo n.º 10
0
 static BuildAnalyticsTypes.AnalyticsEventCommon CreateCommon(BuildPipelineResult result = null)
 {
     return(new BuildAnalyticsTypes.AnalyticsEventCommon()
     {
         dotsRuntimePackageVersion = s_DotsRuntimePackageVersion,
         entitiesPackageVersion = s_EntitiesPackageVersion,
         tinyPackageVersion = s_TinyPackageVersion,
         context = CreateContextInfo(result),
         project = CreateProjectInfo(result),
     });
 }
Ejemplo n.º 11
0
        public void GetBuildArtifact_FileDeleted_IsNull()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration);

            BuildArtifacts.Store(result, new[] { new TestArtifactA() });

            var artifactPath = BuildArtifacts.GetArtifactPath(m_BuildConfiguration);

            Assert.That(File.Exists(artifactPath), Is.True);

            File.Delete(artifactPath);
            Assert.That(BuildArtifacts.GetBuildArtifact <TestArtifactA>(m_BuildConfiguration), Is.Null);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Run the <see cref="BuildPipeline"/> of this <see cref="BuildConfiguration"/> to build the target.
        /// </summary>
        /// <returns>The result of the <see cref="BuildPipeline"/> build.</returns>
        public BuildPipelineResult Build()
        {
            var pipeline = GetBuildPipeline();

            if (!CanBuild(out var reason))
            {
                return(BuildPipelineResult.Failure(pipeline, this, reason));
            }

            var what = !string.IsNullOrEmpty(name) ? $" {name}" : string.Empty;

            using (var progress = new BuildProgress($"Building{what}", "Please wait..."))
            {
                return(pipeline.Build(this, progress));
            }
        }
        public void LogResult_SupportFormattingCharacters()
        {
            var pipeline = BuildPipeline.CreateInstance();
            var config   = BuildConfiguration.CreateInstance();

            var resultSuccess = BuildPipelineResult.Success(pipeline, config);

            Assert.DoesNotThrow(() =>
            {
                LogAssert.Expect(LogType.Log, new Regex(@"Build succeeded after .+\."));
                resultSuccess.LogResult();
            });

            var resultFailure = BuildPipelineResult.Failure(pipeline, config, @"{}{{}}{0}{s}%s%%\s±@£¢¤¬¦²³¼½¾");

            Assert.DoesNotThrow(() =>
            {
                LogAssert.Expect(LogType.Error, new Regex(@"Build failed after .+\.\n.+"));
                resultFailure.LogResult();
            });
        }
Ejemplo n.º 14
0
        static BuildAnalyticsTypes.ContextInfo CreateContextInfo(BuildPipelineResult result)
        {
            var ci = new BuildAnalyticsTypes.ContextInfo();

#if UNITY_INTERNAL
            ci.internal_build = true;
#else
            ci.internal_build = Unsupported.IsDeveloperMode();
#endif

            if (result == null)
            {
                return(ci);
            }

            if (!result.BuildSettings.TryGetComponent <DotsRuntimeBuildProfile>(out var profile))
            {
                return(ci);
            }

            ci.configuration = profile.Configuration.ToString();
            ci.platform      = profile.Target.UnityPlatformName;
            return(ci);
        }
Ejemplo n.º 15
0
        private string GetMessage(BuildPipelineResult result)
        {
            var msg = result.Succeeded ? "Success" : "Fail";

            return($"{result.BuildSettings.name}, {msg}");
        }
Ejemplo n.º 16
0
        public void Store_WithoutBuildArtifactsArray_Throws()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildConfiguration);

            Assert.Throws <ArgumentNullException>(() => BuildArtifacts.Store(result, null));
        }
        public void Store_Throws_WhenNullArtifactsPassed()
        {
            var result = BuildPipelineResult.Success(m_BuildPipeline, m_BuildSettings);

            Assert.Throws <ArgumentNullException>(() => BuildArtifacts.Store(result, null));
        }
Ejemplo n.º 18
0
 static BuildAnalyticsTypes.ProjectInfo CreateProjectInfo(BuildPipelineResult result)
 {
     if (result == null)
     {
         return(default);