diff --git a/Tasks/UnityBuild/UnityBuildV3/task.json b/Tasks/UnityBuild/UnityBuildV3/task.json index 0055cc8..f5b6c39 100644 --- a/Tasks/UnityBuild/UnityBuildV3/task.json +++ b/Tasks/UnityBuild/UnityBuildV3/task.json @@ -200,6 +200,16 @@ "defaultValue": "", "helpMarkDown": "Specify class and method name of the method to execute in your build script separated by a dot. E.g. `MyClass.PerformBuild`" }, + { + "name": "scriptCompletionQuit", + "type": "boolean", + "label": "Quit after script method completion", + "groupName": "build", + "visibleRule": "buildScriptType = existing", + "required": false, + "defaultValue": true, + "helpMarkDown": "Weather to quit the Unity editor after the build script method has completed. If set to false, the editor will stay open after the build script method has completed. The default value is true." + }, { "name": "additionalCmdArgs", "type": "string", @@ -293,4 +303,4 @@ "successGetUnityEditorVersion": "Success, Unity editor version found", "failGetUnityEditorVersion": "Fail, Unity editor version not found" } -} \ No newline at end of file +} diff --git a/Tasks/UnityBuild/UnityBuildV3/unity-build.ts b/Tasks/UnityBuild/UnityBuildV3/unity-build.ts index 2f11511..23978ea 100644 --- a/Tasks/UnityBuild/UnityBuildV3/unity-build.ts +++ b/Tasks/UnityBuild/UnityBuildV3/unity-build.ts @@ -20,6 +20,7 @@ const buildScriptTypeInputVariableName = 'buildScriptType'; const unityEditorsPathModeInputVariableName = 'unityEditorsPathMode'; const inlineBuildScriptInputVariableName = 'inlineBuildScript'; const scriptExecuteMethodInputVariableName = 'scriptExecuteMethod'; +const scriptCompletionQuitInputVariableName = 'scriptCompletionQuit'; const additionalCmdArgsInputVariableName = 'additionalCmdArgs'; const customUnityEditorsPathInputVariableName = 'customUnityEditorsPath'; const cleanBuildInputVariableName = 'Build.Repository.Clean'; @@ -138,7 +139,11 @@ async function run() { unityCmd.arg('-executeMethod').arg(tl.getInput(scriptExecuteMethodInputVariableName)!); } else if (buildScriptType === 'existing') { // If the user already has an existing build script we only need the method to execute. - unityCmd.arg('-executeMethod').arg(tl.getInput(scriptExecuteMethodInputVariableName)!).arg('-quit'); + unityCmd.arg('-executeMethod').arg(tl.getInput(scriptExecuteMethodInputVariableName)!); + + if (tl.getBoolInput(scriptCompletionQuitInputVariableName)) { + unityCmd.arg('-quit'); + } } else { throw `Unsupported build script type ${buildScriptType}` } @@ -187,4 +192,4 @@ function getUnityEditorVersion(): UnityVersionInfoResult { return unityVersion; } -run(); \ No newline at end of file +run();