2020-05-21 15:44:56 +00:00
|
|
|
import { Action, BuildParameters, Cache, Docker, ImageTag } 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();
|
2020-01-27 22:02:32 +00:00
|
|
|
Cache.verify();
|
2019-12-21 12:56:00 +00:00
|
|
|
|
2020-02-01 19:21:22 +00:00
|
|
|
const { dockerfile, workspace, actionFolder } = Action;
|
2020-05-21 15:44:56 +00:00
|
|
|
|
|
|
|
const buildParameters = await BuildParameters.create();
|
2020-04-26 18:22:09 +00:00
|
|
|
const baseImage = new ImageTag(buildParameters);
|
2019-12-22 17:07:55 +00:00
|
|
|
|
2020-01-20 23:06:14 +00:00
|
|
|
// Build docker image
|
2020-02-01 19:21:22 +00:00
|
|
|
const builtImage = await Docker.build({ path: actionFolder, dockerfile, baseImage });
|
2019-12-22 17:07:55 +00:00
|
|
|
|
2020-01-20 23:06:14 +00:00
|
|
|
// Run docker image
|
|
|
|
await Docker.run(builtImage, { workspace, ...buildParameters });
|
2019-12-16 23:53:39 +00:00
|
|
|
}
|
|
|
|
|
2020-05-01 14:52:08 +00:00
|
|
|
action().catch((error) => {
|
2019-12-16 23:53:39 +00:00
|
|
|
core.setFailed(error.message);
|
|
|
|
});
|