2021-03-13 23:44:01 +00:00
|
|
|
import * as core from '@actions/core';
|
2021-12-13 22:21:26 +00:00
|
|
|
import { Action, BuildParameters, Cache, Docker, ImageTag, Output, CloudRunner, Input } from './model';
|
2021-12-25 19:35:09 +00:00
|
|
|
import { CLI } from './model/cli/cli';
|
2021-12-13 22:21:26 +00:00
|
|
|
async function runMain() {
|
2021-03-13 23:44:01 +00:00
|
|
|
try {
|
|
|
|
|
Action.checkCompatibility();
|
|
|
|
|
Cache.verify();
|
|
|
|
|
|
|
|
|
|
const { dockerfile, workspace, actionFolder } = Action;
|
|
|
|
|
|
|
|
|
|
const buildParameters = await BuildParameters.create();
|
|
|
|
|
const baseImage = new ImageTag(buildParameters);
|
2021-12-29 16:55:37 +00:00
|
|
|
if (
|
|
|
|
|
buildParameters.cloudRunnerCluster &&
|
|
|
|
|
buildParameters.cloudRunnerCluster !== '' &&
|
|
|
|
|
buildParameters.cloudRunnerCluster !== 'local'
|
|
|
|
|
) {
|
2021-12-25 19:38:48 +00:00
|
|
|
await CloudRunner.run(buildParameters, baseImage.toString());
|
|
|
|
|
} else {
|
|
|
|
|
core.info('Building locally');
|
2021-12-29 16:18:36 +00:00
|
|
|
const builtImage = await Docker.build({ path: actionFolder, dockerfile, baseImage });
|
2021-12-25 19:38:48 +00:00
|
|
|
await Docker.run(builtImage, { workspace, ...buildParameters });
|
2021-03-13 23:44:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Set output
|
|
|
|
|
await Output.setBuildVersion(buildParameters.buildVersion);
|
|
|
|
|
} catch (error) {
|
2021-09-08 22:17:23 +00:00
|
|
|
core.setFailed((error as Error).message);
|
2021-03-13 23:44:01 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-25 19:35:09 +00:00
|
|
|
const options = CLI.SetupCli();
|
|
|
|
|
if (CLI.isCliMode(options)) {
|
|
|
|
|
CLI.RunCli(options);
|
|
|
|
|
} else {
|
|
|
|
|
Input.githubEnabled = true;
|
|
|
|
|
runMain();
|
2021-12-13 22:21:26 +00:00
|
|
|
}
|