unity-builder/dist/default-build-script/Assets/Editor/Builder.cs

60 lines
1.9 KiB
C#
Raw Normal View History

2020-04-21 22:08:08 +00:00
using System;
2019-11-30 23:23:56 +00:00
using System.Collections.Generic;
using System.Linq;
2020-04-21 22:08:08 +00:00
using UnityBuilderAction.Input;
using UnityBuilderAction.Reporting;
using UnityBuilderAction.Versioning;
2019-11-30 23:23:56 +00:00
using UnityEditor;
using UnityEditor.Build.Reporting;
2019-12-07 22:43:37 +00:00
namespace UnityBuilderAction
2019-11-30 23:23:56 +00:00
{
2019-12-07 22:43:37 +00:00
static class Builder
2019-11-30 23:23:56 +00:00
{
2019-12-07 22:43:37 +00:00
public static void BuildProject()
{
// Gather values from args
2020-04-21 22:08:08 +00:00
var options = ArgumentsParser.GetValidatedOptions();
2019-11-30 23:23:56 +00:00
2019-12-07 22:43:37 +00:00
// Gather values from project
var scenes = EditorBuildSettings.scenes.Where(scene => scene.enabled).Select(s => s.path).ToArray();
// Get all buildOptions from options
BuildOptions buildOptions = BuildOptions.None;
foreach (string buildOptionString in Enum.GetNames(typeof(BuildOptions))) {
if (options.ContainsKey(buildOptionString)) {
BuildOptions buildOptionEnum = (BuildOptions) Enum.Parse(typeof(BuildOptions), buildOptionString);
buildOptions |= buildOptionEnum;
}
}
2019-11-30 23:23:56 +00:00
2019-12-07 22:43:37 +00:00
// Define BuildPlayer Options
var buildPlayerOptions = new BuildPlayerOptions {
2019-12-07 22:43:37 +00:00
scenes = scenes,
locationPathName = options["customBuildPath"],
target = (BuildTarget) Enum.Parse(typeof(BuildTarget), options["buildTarget"]),
options = buildOptions
2019-12-07 22:43:37 +00:00
};
2019-11-30 23:23:56 +00:00
2020-04-21 22:08:08 +00:00
// Set version for this build
VersionApplicator.SetVersion(options["buildVersion"]);
VersionApplicator.SetAndroidVersionCode(options["androidVersionCode"]);
2020-07-06 01:41:21 +00:00
// Apply Android settings
if (buildPlayerOptions.target == BuildTarget.Android)
2020-07-06 01:41:21 +00:00
AndroidSettings.Apply(options);
2020-04-21 22:08:08 +00:00
2019-12-07 22:43:37 +00:00
// Perform build
BuildReport buildReport = BuildPipeline.BuildPlayer(buildPlayerOptions);
2019-11-30 23:23:56 +00:00
2019-12-07 22:43:37 +00:00
// Summary
BuildSummary summary = buildReport.summary;
2020-04-21 22:08:08 +00:00
StdOutReporter.ReportSummary(summary);
2019-11-30 23:23:56 +00:00
2019-12-07 22:43:37 +00:00
// Result
BuildResult result = summary.result;
2020-04-21 22:08:08 +00:00
StdOutReporter.ExitWithResult(result);
2019-11-30 23:23:56 +00:00
}
}
}