Skip to content

Commit

Permalink
feat: BuildAction에 Craete Symbol 옵션 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
siren403 committed Jun 14, 2023
1 parent c37abab commit b10532c
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 14 deletions.
46 changes: 39 additions & 7 deletions Packages/UActions/Editor/Actions/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,41 @@
using System.Linq;
using UnityEditor;
using UnityEngine;
using YamlDotNet.Core;
using YamlDotNet.Serialization;

namespace UActions.Editor.Actions
{
[Input("path")]
[Input(InputSkipBuild, type: typeof(bool), isOptional: true)]
[Input(InputPath)]
[Input(InputXcodeAppend, isOptional: true)]
[Input(InputSymbol, true, typeof(AndroidCreateSymbols), isOptional: true)]
public class Build : IAction
{
// todo: struct
public const string InputSkipBuild = "skip-build";
public const string InputPath = "path";
public const string InputXcodeAppend = "xcode-append";
public const string InputSymbol = "symbol";

public class Registration : IRegistration
{
public void Register(DeserializerBuilder builder)
{
#if UNITY_2021_2_OR_NEWER
builder.WithTagMapping(new TagName("!symbol"), typeof(AndroidCreateSymbols));
#else
builder.WithTagMapping("!symbol", typeof(AndroidCreateSymbols));
#endif
}
}


public TargetPlatform Targets => TargetPlatform.All;

public void Execute(IWorkflowContext context)
{
if (!context.With.TryGetFormat("path", out var path))
if (!context.With.TryGetFormat(InputPath, out var path))
{
Console.WriteLine("not found build path");
return;
Expand All @@ -25,17 +49,22 @@ public void Execute(IWorkflowContext context)
var additional = BuildOptions.None;

#if UNITY_2019_4_OR_NEWER
if (context.With.Is("xcode-append") &&
if (context.With.Is(InputXcodeAppend) &&
BuildPipeline.BuildCanBeAppended(context.CurrentTargets.Target, buildPath) == CanAppendBuild.Yes)
{
#else
if(context.With.Is("xcode-append"))
if(context.With.Is(InputXcodeAppend))
{
#endif
// xcode append
additional |= BuildOptions.AcceptExternalModificationsToPlayer;
}

EditorUserBuildSettings.androidCreateSymbols =
context.With.TryGetValue(InputSymbol, out AndroidCreateSymbols symbols)
? symbols
: AndroidCreateSymbols.Disabled;

var options = new BuildPlayerOptions
{
scenes = GetEnableEditorScenes(),
Expand All @@ -45,10 +74,13 @@ public void Execute(IWorkflowContext context)
options = additional,
};

var report = BuildPipeline.BuildPlayer(options);
if (!Application.isBatchMode)
if (!context.With.Is(InputSkipBuild))
{
ActionHelper.OpenFolder(report.summary.outputPath);
var report = BuildPipeline.BuildPlayer(options);
if (!Application.isBatchMode)
{
ActionHelper.OpenFolder(report.summary.outputPath);
}
}
}

Expand Down
20 changes: 15 additions & 5 deletions Packages/UActions/Tests/Editor/Actions/BuildTests.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
using NUnit.Framework;
using System.Collections.Generic;
using NUnit.Framework;
using UActions.Editor.Actions;
using UnityEditor;

namespace UActions.Tests.Editor.Actions
{
public class BuildTests
public class BuildTests : ActionsTestsBase<Build>
{
[Test]
public void InputTest()
[TestCase(AndroidCreateSymbols.Public)]
public void SymbolTest(AndroidCreateSymbols symbols)
{

Run(new Dictionary<object, object>()
{
{"path", "-"},
{"symbol", symbols},
{"skip-build", true}
});

Assert.AreEqual(symbols, EditorUserBuildSettings.androidCreateSymbols);
}
}
}
4 changes: 2 additions & 2 deletions ProjectSettings/PackageManagerSettings.asset
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@ MonoBehaviour:
m_RegistryInfoDraft:
m_Modified: 0
m_ErrorMessage:
m_UserModificationsInstanceId: -836
m_OriginalInstanceId: -838
m_UserModificationsInstanceId: -828
m_OriginalInstanceId: -830
m_LoadAssets: 0

0 comments on commit b10532c

Please sign in to comment.