unity-test-runner/src/model/action.ts

60 lines
1.3 KiB
TypeScript

import path from 'path';
export interface RunnerContext {
runnerTemporaryPath: string;
githubAction: string;
}
const Action = {
get supportedPlatforms() {
return ['linux', 'win32', 'darwin'];
},
get isRunningLocally() {
return process.env.RUNNER_WORKSPACE === undefined;
},
get isRunningFromSource() {
return path.basename(__dirname) === 'model';
},
get canonicalName() {
return 'unity-test-runner';
},
get rootFolder() {
if (Action.isRunningFromSource) {
return path.dirname(path.dirname(path.dirname(__filename)));
}
return path.dirname(path.dirname(__filename));
},
get actionFolder() {
return `${Action.rootFolder}/dist`;
},
get workspace() {
return process.env.GITHUB_WORKSPACE;
},
runnerContext(): RunnerContext {
const runnerTemporaryPath = process.env.RUNNER_TEMP ?? process.cwd();
const githubAction = process.env.GITHUB_ACTION ?? process.pid.toString();
return {
runnerTemporaryPath,
githubAction,
};
},
checkCompatibility() {
const currentPlatform = process.platform;
if (!Action.supportedPlatforms.includes(currentPlatform)) {
throw new Error(`Currently ${currentPlatform}-platform is not supported`);
}
},
};
export default Action;