unity-builder/src/index.js

42 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-01-31 19:49:22 +00:00
import { Action, BuildParameters, Cache, Docker, ImageTag, Kubernetes, Output, AWS } from './model';
2019-12-22 14:05:15 +00:00
2019-12-16 23:53:39 +00:00
const core = require('@actions/core');
async function action() {
2019-12-22 14:05:15 +00:00
Action.checkCompatibility();
Cache.verify();
2019-12-21 12:56:00 +00:00
const { dockerfile, workspace, actionFolder } = Action;
const buildParameters = await BuildParameters.create();
const baseImage = new ImageTag(buildParameters);
2021-01-31 19:22:28 +00:00
let builtImage;
switch (buildParameters.remote) {
case 'k8s':
core.info('Building with Kubernetes');
await Kubernetes.runBuildJob(buildParameters, baseImage);
break;
case 'aws':
2021-01-31 19:49:22 +00:00
core.info('Building with AWS');
await AWS.runBuildJob(buildParameters, baseImage);
2021-01-31 19:22:28 +00:00
break;
// default and local case
default:
// Build docker image
// TODO: No image required (instead use a version published to dockerhub for the action, supply credentials for github cloning)
builtImage = await Docker.build({ path: actionFolder, dockerfile, baseImage });
await Docker.run(builtImage, { workspace, ...buildParameters });
break;
}
// Set output
await Output.setBuildVersion(buildParameters.buildVersion);
2019-12-16 23:53:39 +00:00
}
action().catch((error) => {
2019-12-16 23:53:39 +00:00
core.setFailed(error.message);
});