unity-builder/src/index.ts

47 lines
1.3 KiB
TypeScript

import * as core from '@actions/core';
import { Action, BuildParameters, Cache, Docker, ImageTag, Output, CloudRunner, Input } from './model';
import { CLI } from './model/cli/cli';
async function runMain() {
try {
Action.checkCompatibility();
Cache.verify();
const { dockerfile, workspace, actionFolder } = Action;
const buildParameters = await BuildParameters.create();
const baseImage = new ImageTag(buildParameters);
let builtImage;
switch (buildParameters.cloudRunnerCluster) {
case 'aws':
case 'k8s':
await CloudRunner.run(buildParameters, baseImage.toString());
break;
// default and local case
default:
core.info('Building locally');
builtImage = await Docker.build({ path: actionFolder, dockerfile, baseImage });
await Docker.run(builtImage, { workspace, ...buildParameters });
break;
}
// Set output
await Output.setBuildVersion(buildParameters.buildVersion);
} catch (error) {
core.setFailed((error as Error).message);
}
}
const options = CLI.SetupCli();
// eslint-disable-next-line no-console
console.log(`Entrypoint: ${options.mode}`);
if (CLI.isCliMode(options)) {
CLI.RunCli(options);
} else {
Input.githubEnabled = true;
runMain();
}