Revert to cwd being the workspace folder and pass action folder as an env variable.

pull/326/head
Andrew Kahr 2022-01-26 20:14:31 -08:00
parent 40463d3b61
commit f652a90039
9 changed files with 55 additions and 25 deletions

25
dist/index.js vendored
View File

@ -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;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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,
});
}

View File

@ -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
}

View File

@ -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;