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); }
/// <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); }
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); }
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); }
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); }
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); }
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), }); }
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); }
/// <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(); }); }
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); }
private string GetMessage(BuildPipelineResult result) { var msg = result.Succeeded ? "Success" : "Fail"; return($"{result.BuildSettings.name}, {msg}"); }
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)); }
static BuildAnalyticsTypes.ProjectInfo CreateProjectInfo(BuildPipelineResult result) { if (result == null) { return(default);