Files
Jenkins_UnityBuild_TestProject/Assets/Editor/BuildScript.cs
2025-08-27 11:51:25 +02:00

62 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

public static class BuildScript
{
// Helper: use EditorBuildSettings scenes if present, otherwise fall back to your test scene
static string[] ScenesToBuild() =>
EditorBuildSettings.scenes.Length > 0
? EditorBuildSettings.scenes.Where(s => s.enabled).Select(s => s.path).ToArray()
: new[] { "Assets/Scenes/TestScene.unity" };
[MenuItem("Build/Build Windows")]
public static void BuildWindows()
{
var buildPath = "Builds/Windows";
Directory.CreateDirectory(buildPath);
BuildPipeline.BuildPlayer(
ScenesToBuild(),
Path.Combine(buildPath, "TestGame.exe"),
BuildTarget.StandaloneWindows64,
BuildOptions.None
);
}
[MenuItem("Build/Build Mac")]
public static void BuildMac()
{
var buildPath = "Builds/Mac";
Directory.CreateDirectory(buildPath);
BuildPipeline.BuildPlayer(
ScenesToBuild(),
Path.Combine(buildPath, "TestGame.app"),
BuildTarget.StandaloneOSX,
BuildOptions.None
);
}
// ? New: CI-friendly Android build
public static void BuildAndroidCI()
{
// Make sure were on the Android target (does nothing if already there)
EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, BuildTarget.Android);
// Optional: ensure .apk (set to .aab if you want App Bundle)
var buildDir = "Builds/Android";
Directory.CreateDirectory(buildDir);
var outputPath = Path.Combine(buildDir, "TestGame.apk");
// Optional CI toggles (strip development/build-report etc. if you prefer)
var options = BuildOptions.None;
var report = BuildPipeline.BuildPlayer(
ScenesToBuild(),
outputPath,
BuildTarget.Android,
options
);
if (report.summary.result != UnityEditor.Build.Reporting.BuildResult.Succeeded)
throw new System.Exception("Android build failed: " + report.summary.result);
}
}