Implement AWS Fargate support [Large build support] (#246)

* Implement AWS Fargate support

* Update aws-tests workflow to include aws-ts-clean

* support remoteBuildCpu and remoteBuildContainer parameters for aws

* Syntax fix

* remove package-lock add yarn.lock

* yarn lock

* if: github.event.pull_request.draft == false

Co-authored-by: mdugdale <mark.dugdale@bossastudios.com>
This commit is contained in:
Frostebite
2021-04-20 21:46:37 +01:00
committed by GitHub
parent 398eda622f
commit 501c67e40c
17 changed files with 49837 additions and 11905 deletions

View File

@@ -1,5 +1,5 @@
import * as core from '@actions/core';
import { Action, BuildParameters, Cache, Docker, ImageTag, Kubernetes, Output } from './model';
import { Action, BuildParameters, Cache, Docker, ImageTag, Kubernetes, Output, AWS } from './model';
async function run() {
try {
@@ -10,14 +10,25 @@ async function run() {
const buildParameters = await BuildParameters.create();
const baseImage = new ImageTag(buildParameters);
if (buildParameters.kubeConfig) {
core.info('Building with Kubernetes');
await Kubernetes.runBuildJob(buildParameters, baseImage);
} else {
// Build docker image
// TODO: No image required (instead use a version published to dockerhub for the action, supply credentials for github cloning)
const builtImage = await Docker.build({ path: actionFolder, dockerfile, baseImage });
await Docker.run(builtImage, { workspace, ...buildParameters });
let builtImage;
switch (buildParameters.remoteBuildCluster) {
case 'k8s':
core.info('Building with Kubernetes');
await Kubernetes.runBuildJob(buildParameters, baseImage);
break;
case 'aws':
core.info('Building with AWS');
await AWS.runBuildJob(buildParameters, baseImage);
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