Revert to cwd being the workspace folder and pass action folder as an env variable.
							parent
							
								
									40463d3b61
								
							
						
					
					
						commit
						f652a90039
					
				|  | @ -64,7 +64,7 @@ function run() { | |||
|                 // default and local case
 | ||||
|                 default: | ||||
|                     core.info('Building locally'); | ||||
|                     yield platform_setup_1.default.setup(buildParameters); | ||||
|                     yield platform_setup_1.default.setup(buildParameters, actionFolder); | ||||
|                     if (process.platform === 'darwin') { | ||||
|                         mac_builder_1.default.run(actionFolder, workspace, buildParameters); | ||||
|                     } | ||||
|  | @ -1219,7 +1219,6 @@ class MacBuilder { | |||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             yield exec_1.exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { | ||||
|                 silent, | ||||
|                 cwd: `${actionFolder}/platforms/mac`, | ||||
|                 ignoreReturnCode: true, | ||||
|             }); | ||||
|         }); | ||||
|  | @ -1279,7 +1278,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true })); | |||
| const platform_setup_1 = __webpack_require__(2014); | ||||
| const validate_windows_1 = __importDefault(__webpack_require__(41563)); | ||||
| class PlatformSetup { | ||||
|     static setup(buildParameters) { | ||||
|     static setup(buildParameters, actionFolder) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             switch (process.platform) { | ||||
|                 case 'win32': | ||||
|  | @ -1287,7 +1286,7 @@ class PlatformSetup { | |||
|                     platform_setup_1.SetupWindows.setup(buildParameters); | ||||
|                     break; | ||||
|                 case 'darwin': | ||||
|                     yield platform_setup_1.SetupMac.setup(buildParameters); | ||||
|                     yield platform_setup_1.SetupMac.setup(buildParameters, actionFolder); | ||||
|                     break; | ||||
|                 //Add other baseOS's here
 | ||||
|             } | ||||
|  | @ -1339,22 +1338,27 @@ const unity_changeset_1 = __webpack_require__(4635); | |||
| const exec_1 = __webpack_require__(71514); | ||||
| const fs_1 = __importDefault(__webpack_require__(35747)); | ||||
| class SetupMac { | ||||
|     static setup(buildParameters) { | ||||
|     static setup(buildParameters, actionFolder) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.version}/Unity.app/Contents/MacOS/Unity`; | ||||
|             yield exec_1.exec('pwd'); | ||||
|             // Only install unity if the editor doesn't already exist
 | ||||
|             if (!fs_1.default.existsSync(unityEditorPath)) { | ||||
|                 yield SetupMac.installUnityHub(); | ||||
|                 yield SetupMac.installUnity(buildParameters); | ||||
|             } | ||||
|             yield SetupMac.setEnvironmentVariables(buildParameters); | ||||
|             yield SetupMac.setEnvironmentVariables(buildParameters, actionFolder); | ||||
|         }); | ||||
|     } | ||||
|     static installUnityHub(silent = false) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             const command = 'brew install unity-hub'; | ||||
|             if (!fs_1.default.existsSync(this.unityHubPath)) { | ||||
|                 yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|                 //Ignoring return code because the log seems to overflow the internal buffer which triggers
 | ||||
|                 //a false error
 | ||||
|                 const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|                 if (errorCode) { | ||||
|                     throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | @ -1366,16 +1370,19 @@ class SetupMac { | |||
|                                           --changeset ${unityChangeset.changeset} \ | ||||
|                                           --module mac-il2cpp \ | ||||
|                                           --childModules`;
 | ||||
|             //Ignoring return code because the log seems to overflow the internal buffer which triggers
 | ||||
|             //a false error
 | ||||
|             const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|             if (errorCode) { | ||||
|                 throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|     static setEnvironmentVariables(buildParameters) { | ||||
|     static setEnvironmentVariables(buildParameters, actionFolder) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             //Need to set environment variables from here because we execute
 | ||||
|             //the scripts on the host for mac
 | ||||
|             process.env.ACTION_FOLDER = actionFolder; | ||||
|             process.env.UNITY_VERSION = buildParameters.version; | ||||
|             process.env.UNITY_SERIAL = buildParameters.unitySerial; | ||||
|             process.env.PROJECT_PATH = buildParameters.projectPath; | ||||
|  |  | |||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,24 +1,28 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # | ||||
| # Create directory for license activation | ||||
| # Create directories for license activation | ||||
| # | ||||
| 
 | ||||
| sudo mkdir /Library/Application\ Support/Unity | ||||
| sudo chmod -R 777 /Library/Application\ Support/Unity | ||||
| 
 | ||||
| ACTIVATE_LICENSE_PATH="$GITHUB_WORKSPACE/_activate-license" | ||||
| mkdir -p "$ACTIVATE_LICENSE_PATH" | ||||
| 
 | ||||
| # | ||||
| # Run steps | ||||
| # | ||||
| source ./steps/activate.sh | ||||
| source ./steps/build.sh | ||||
| source ./steps/return_license.sh | ||||
| source $ACTION_FOLDER/platforms/mac/steps/activate.sh | ||||
| source $ACTION_FOLDER/platforms/mac/steps/build.sh | ||||
| source $ACTION_FOLDER/platforms/mac/steps/return_license.sh | ||||
| 
 | ||||
| # | ||||
| # Remove license activation directory | ||||
| # | ||||
| 
 | ||||
| sudo rm -r /Library/Application\ Support/Unity | ||||
| rm -r "$ACTIVATE_LICENSE_PATH" | ||||
| 
 | ||||
| # | ||||
| # Instructions for debugging | ||||
|  |  | |||
|  | @ -1,5 +1,9 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # Run in ACTIVATE_LICENSE_PATH directory | ||||
| echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory." | ||||
| pushd "$ACTIVATE_LICENSE_PATH" | ||||
| 
 | ||||
| echo "Requesting activation" | ||||
| 
 | ||||
| # Activate license | ||||
|  |  | |||
|  | @ -1,7 +1,8 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # Need this because it tries to initialize the library when deactivating | ||||
| UNITY_PROJECT_PATH="$GITHUB_WORKSPACE/$PROJECT_PATH" | ||||
| # Run in ACTIVATE_LICENSE_PATH directory | ||||
| echo "Changing to \"$ACTIVATE_LICENSE_PATH\" directory." | ||||
| pushd "$ACTIVATE_LICENSE_PATH" | ||||
| 
 | ||||
| /Applications/Unity/Hub/Editor/$UNITY_VERSION/Unity.app/Contents/MacOS/Unity \ | ||||
|   -logFile /dev/stdout \ | ||||
|  | @ -9,3 +10,6 @@ UNITY_PROJECT_PATH="$GITHUB_WORKSPACE/$PROJECT_PATH" | |||
|   -nographics \ | ||||
|   -quit \ | ||||
|   -returnlicense | ||||
| 
 | ||||
| # Return to previous working directory | ||||
| popd | ||||
|  |  | |||
|  | @ -28,7 +28,7 @@ async function run() { | |||
|       // default and local case
 | ||||
|       default: | ||||
|         core.info('Building locally'); | ||||
|         await PlatformSetup.setup(buildParameters); | ||||
|         await PlatformSetup.setup(buildParameters, actionFolder); | ||||
|         if (process.platform === 'darwin') { | ||||
|           MacBuilder.run(actionFolder, workspace, buildParameters); | ||||
|         } else { | ||||
|  |  | |||
|  | @ -5,7 +5,6 @@ class MacBuilder { | |||
|   public static async run(actionFolder, workspace, buildParameters: BuildParameters, silent = false) { | ||||
|     await exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { | ||||
|       silent, | ||||
|       cwd: `${actionFolder}/platforms/mac`, | ||||
|       ignoreReturnCode: true, | ||||
|     }); | ||||
|   } | ||||
|  |  | |||
|  | @ -3,14 +3,14 @@ import { SetupWindows, SetupMac } from './platform-setup/'; | |||
| import ValidateWindows from './platform-validation/validate-windows'; | ||||
| 
 | ||||
| class PlatformSetup { | ||||
|   static async setup(buildParameters: BuildParameters) { | ||||
|   static async setup(buildParameters: BuildParameters, actionFolder: string) { | ||||
|     switch (process.platform) { | ||||
|       case 'win32': | ||||
|         ValidateWindows.validate(buildParameters); | ||||
|         SetupWindows.setup(buildParameters); | ||||
|         break; | ||||
|       case 'darwin': | ||||
|         await SetupMac.setup(buildParameters); | ||||
|         await SetupMac.setup(buildParameters, actionFolder); | ||||
|         break; | ||||
|       //Add other baseOS's here
 | ||||
|     } | ||||
|  |  | |||
|  | @ -5,20 +5,28 @@ import fs from 'fs'; | |||
| 
 | ||||
| class SetupMac { | ||||
|   static unityHubPath = `"/Applications/Unity Hub.app/Contents/MacOS/Unity Hub"`; | ||||
|   public static async setup(buildParameters: BuildParameters) { | ||||
| 
 | ||||
|   public static async setup(buildParameters: BuildParameters, actionFolder: string) { | ||||
|     const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.version}/Unity.app/Contents/MacOS/Unity`; | ||||
|     await exec('pwd'); | ||||
| 
 | ||||
|     // Only install unity if the editor doesn't already exist
 | ||||
|     if (!fs.existsSync(unityEditorPath)) { | ||||
|       await SetupMac.installUnityHub(); | ||||
|       await SetupMac.installUnity(buildParameters); | ||||
|     } | ||||
|     await SetupMac.setEnvironmentVariables(buildParameters); | ||||
| 
 | ||||
|     await SetupMac.setEnvironmentVariables(buildParameters, actionFolder); | ||||
|   } | ||||
| 
 | ||||
|   private static async installUnityHub(silent = false) { | ||||
|     const command = 'brew install unity-hub'; | ||||
|     if (!fs.existsSync(this.unityHubPath)) { | ||||
|       await exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|       //Ignoring return code because the log seems to overflow the internal buffer which triggers
 | ||||
|       //a false error
 | ||||
|       const errorCode = await exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|       if (errorCode) { | ||||
|         throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | @ -29,15 +37,19 @@ class SetupMac { | |||
|                                           --changeset ${unityChangeset.changeset} \ | ||||
|                                           --module mac-il2cpp \ | ||||
|                                           --childModules`;
 | ||||
| 
 | ||||
|     //Ignoring return code because the log seems to overflow the internal buffer which triggers
 | ||||
|     //a false error
 | ||||
|     const errorCode = await exec(command, undefined, { silent, ignoreReturnCode: true }); | ||||
|     if (errorCode) { | ||||
|       throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   private static async setEnvironmentVariables(buildParameters: BuildParameters) { | ||||
|   private static async setEnvironmentVariables(buildParameters: BuildParameters, actionFolder: string) { | ||||
|     //Need to set environment variables from here because we execute
 | ||||
|     //the scripts on the host for mac
 | ||||
|     process.env.ACTION_FOLDER = actionFolder; | ||||
|     process.env.UNITY_VERSION = buildParameters.version; | ||||
|     process.env.UNITY_SERIAL = buildParameters.unitySerial; | ||||
|     process.env.PROJECT_PATH = buildParameters.projectPath; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue