Testing unified providers for k8s and aws

pull/273/head
Frostebite 2021-06-19 21:06:11 +01:00
parent 267abc7b12
commit 2b559c587f
11 changed files with 78 additions and 228 deletions

View File

@ -1,7 +1,7 @@
name: AWS
on:
push: { branches: [main, aws, remote-builder/refactor-and-steam-deploy] }
push: { branches: [main, aws, remote-builder/unified-providers] }
env:
AWS_REGION: 'eu-west-1'

View File

@ -1,7 +1,7 @@
name: Kubernetes GKE + Autopilot
on:
push: { branches: [remote-builder/k8s] }
push: { branches: [remote-builder/k8s, remote-builder/unified-providers] }
# push: { branches: [main] }
# pull_request:
# paths-ignore:

202
dist/index.js vendored
View File

@ -48,12 +48,8 @@ function run() {
const baseImage = new model_1.ImageTag(buildParameters);
let builtImage;
switch (buildParameters.remoteBuildCluster) {
case 'k8s':
core.info('Building with Kubernetes');
yield new model_1.Kubernetes(buildParameters, baseImage).runFullBuildFlow();
break;
case 'aws':
core.info('Building with AWS');
case 'k8s':
yield model_1.RemoteBuilder.build(buildParameters, baseImage);
break;
// default and local case
@ -557,7 +553,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.RemoteBuilder = exports.Kubernetes = exports.Versioning = exports.Unity = exports.Project = exports.Platform = exports.Output = exports.ImageTag = exports.Input = exports.Docker = exports.Cache = exports.BuildParameters = exports.Action = void 0;
exports.RemoteBuilder = exports.Versioning = exports.Unity = exports.Project = exports.Platform = exports.Output = exports.ImageTag = exports.Input = exports.Docker = exports.Cache = exports.BuildParameters = exports.Action = void 0;
const action_1 = __importDefault(__webpack_require__(89088));
exports.Action = action_1.default;
const build_parameters_1 = __importDefault(__webpack_require__(80787));
@ -580,8 +576,6 @@ const unity_1 = __importDefault(__webpack_require__(70498));
exports.Unity = unity_1.default;
const versioning_1 = __importDefault(__webpack_require__(88729));
exports.Versioning = versioning_1.default;
const kubernetes_build_platform_1 = __importDefault(__webpack_require__(81730));
exports.Kubernetes = kubernetes_build_platform_1.default;
const remote_builder_1 = __importDefault(__webpack_require__(49358));
exports.RemoteBuilder = remote_builder_1.default;
@ -854,9 +848,6 @@ const core = __importStar(__webpack_require__(42186));
const remote_builder_constants_1 = __importDefault(__webpack_require__(92560));
const aws_build_runner_1 = __importDefault(__webpack_require__(11201));
class AWSBuildEnvironment {
runFullBuildFlow() {
throw new Error('Method not implemented.');
}
runBuildTask(buildId, stackName, image, commands, mountdir, workingdir, environment, secrets) {
return __awaiter(this, void 0, void 0, function* () {
const ECS = new SDK.ECS();
@ -871,9 +862,6 @@ class AWSBuildEnvironment {
}
});
}
// static async setupPlatformResources() {
// throw new Error('Method not implemented.');
// }
static getParameterTemplate(p1) {
return `
${p1}:
@ -1260,9 +1248,6 @@ const stream_1 = __webpack_require__(92413);
const async_wait_until_1 = __webpack_require__(41299);
const kubernetes_storage_1 = __importDefault(__webpack_require__(38941));
const base64 = __webpack_require__(85848);
const repositoryFolder = 'repo';
const buildVolumeFolder = 'data';
// const cacheFolder = 'cache';
class Kubernetes {
constructor(buildParameters, baseImage) {
this.buildId = '';
@ -1337,6 +1322,7 @@ class Kubernetes {
catch (error) {
core.info('Running job failed');
yield this.cleanup();
core.error(JSON.stringify(error.response, undefined, 4));
throw error;
}
});
@ -1351,21 +1337,6 @@ class Kubernetes {
this.secretName = secretName;
this.jobName = jobName;
}
runFullBuildFlow() {
return __awaiter(this, void 0, void 0, function* () {
core.info('Running Remote Builder on Kubernetes');
try {
yield this.runCloneJob();
yield this.runBuildJob();
}
catch (error) {
core.error(error);
core.error(JSON.stringify(error.response, undefined, 4));
throw error;
}
core.setOutput('volume', this.pvcName);
});
}
createSecret(secrets) {
return __awaiter(this, void 0, void 0, function* () {
const secret = new k8s.V1Secret();
@ -1579,46 +1550,6 @@ class Kubernetes {
return pod;
});
}
runCloneJob() {
return __awaiter(this, void 0, void 0, function* () {
yield this.runBuildTask(this.buildCorrelationId, '', 'alpine/git', [
'/bin/ash',
'-c',
`apk update;
apk add unzip;
apk add git-lfs;
apk add jq;
ls /credentials/
export GITHUB_TOKEN=$(cat /credentials/GITHUB_TOKEN);
git clone https://github.com/${process.env.GITHUB_REPOSITORY}.git ${buildVolumeFolder}/${repositoryFolder};
git clone https://github.com/webbertakken/unity-builder.git ${buildVolumeFolder}/builder;
cd ${buildVolumeFolder}/${repositoryFolder};
git checkout $GITHUB_SHA;
ls
echo "end"`,
], 'data', 'data', [], []);
});
}
runBuildJob() {
return __awaiter(this, void 0, void 0, function* () {
yield this.runBuildTask(this.buildCorrelationId, '', this.baseImage.toString(), [
'bin/bash',
'-c',
`ls
for f in ./credentials/*; do export $(basename $f)="$(cat $f)"; done
ls /data
ls /data/builder
ls /data/builder/dist
cp -r /data/builder/dist/default-build-script /UnityBuilderAction
cp -r /data/builder/dist/entrypoint.sh /entrypoint.sh
cp -r /data/builder/dist/steps /steps
chmod -R +x /entrypoint.sh
chmod -R +x /steps
/entrypoint.sh
`,
], 'data', 'data', [], []);
});
}
watchUntilPodRunning() {
return __awaiter(this, void 0, void 0, function* () {
let success = false;
@ -1794,6 +1725,7 @@ class KubernetesStorage {
};
const result = yield kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
core.info(`Persistent Volume Claim ${(_a = result.body.metadata) === null || _a === void 0 ? void 0 : _a.name} ${pvcName} created`);
core.setOutput('volume', pvcName);
});
}
}
@ -1889,10 +1821,12 @@ class RemoteBuilder {
try {
switch (buildParameters.remoteBuildCluster) {
case 'aws':
core.info('Building with AWS');
this.RemoteBuilderProviderPlatform = new aws_build_platform_1.default();
break;
case 'k8s':
default:
case 'k8s':
core.info('Building with Kubernetes');
this.RemoteBuilderProviderPlatform = new kubernetes_build_platform_1.default(buildParameters, baseImage);
break;
}
@ -4321,7 +4255,7 @@ tslib_1.__exportStar(__webpack_require__(37233), exports);
/***/ }),
/***/ 48698:
/***/ 61041:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
@ -94393,7 +94327,7 @@ EventsV1EventList.attributeTypeMap = [
/***/ }),
/***/ 10000:
/***/ 6933:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -95000,7 +94934,7 @@ tslib_1.__exportStar(__webpack_require__(12368), exports);
tslib_1.__exportStar(__webpack_require__(70438), exports);
tslib_1.__exportStar(__webpack_require__(52191), exports);
tslib_1.__exportStar(__webpack_require__(1051), exports);
tslib_1.__exportStar(__webpack_require__(10000), exports);
tslib_1.__exportStar(__webpack_require__(6933), exports);
tslib_1.__exportStar(__webpack_require__(73491), exports);
tslib_1.__exportStar(__webpack_require__(77652), exports);
tslib_1.__exportStar(__webpack_require__(30621), exports);
@ -95170,7 +95104,7 @@ tslib_1.__exportStar(__webpack_require__(63580), exports);
tslib_1.__exportStar(__webpack_require__(91260), exports);
tslib_1.__exportStar(__webpack_require__(94069), exports);
tslib_1.__exportStar(__webpack_require__(13366), exports);
tslib_1.__exportStar(__webpack_require__(32400), exports);
tslib_1.__exportStar(__webpack_require__(93114), exports);
tslib_1.__exportStar(__webpack_require__(57345), exports);
tslib_1.__exportStar(__webpack_require__(23549), exports);
tslib_1.__exportStar(__webpack_require__(22567), exports);
@ -95228,7 +95162,7 @@ tslib_1.__exportStar(__webpack_require__(19051), exports);
tslib_1.__exportStar(__webpack_require__(90114), exports);
tslib_1.__exportStar(__webpack_require__(7924), exports);
tslib_1.__exportStar(__webpack_require__(25570), exports);
tslib_1.__exportStar(__webpack_require__(17657), exports);
tslib_1.__exportStar(__webpack_require__(89974), exports);
tslib_1.__exportStar(__webpack_require__(32966), exports);
tslib_1.__exportStar(__webpack_require__(78594), exports);
tslib_1.__exportStar(__webpack_require__(99911), exports);
@ -95475,7 +95409,7 @@ tslib_1.__exportStar(__webpack_require__(27347), exports);
tslib_1.__exportStar(__webpack_require__(61730), exports);
tslib_1.__exportStar(__webpack_require__(37085), exports);
tslib_1.__exportStar(__webpack_require__(7423), exports);
tslib_1.__exportStar(__webpack_require__(26777), exports);
tslib_1.__exportStar(__webpack_require__(34706), exports);
tslib_1.__exportStar(__webpack_require__(98830), exports);
tslib_1.__exportStar(__webpack_require__(93967), exports);
tslib_1.__exportStar(__webpack_require__(64484), exports);
@ -95579,7 +95513,7 @@ tslib_1.__exportStar(__webpack_require__(2411), exports);
tslib_1.__exportStar(__webpack_require__(3849), exports);
tslib_1.__exportStar(__webpack_require__(37196), exports);
tslib_1.__exportStar(__webpack_require__(27287), exports);
tslib_1.__exportStar(__webpack_require__(36502), exports);
tslib_1.__exportStar(__webpack_require__(79262), exports);
tslib_1.__exportStar(__webpack_require__(43128), exports);
tslib_1.__exportStar(__webpack_require__(96606), exports);
tslib_1.__exportStar(__webpack_require__(74687), exports);
@ -95605,7 +95539,7 @@ tslib_1.__exportStar(__webpack_require__(33665), exports);
tslib_1.__exportStar(__webpack_require__(96952), exports);
tslib_1.__exportStar(__webpack_require__(41473), exports);
tslib_1.__exportStar(__webpack_require__(67231), exports);
tslib_1.__exportStar(__webpack_require__(46788), exports);
tslib_1.__exportStar(__webpack_require__(29409), exports);
tslib_1.__exportStar(__webpack_require__(17298), exports);
tslib_1.__exportStar(__webpack_require__(60715), exports);
tslib_1.__exportStar(__webpack_require__(73280), exports);
@ -95636,7 +95570,7 @@ const coreV1EventList_1 = __webpack_require__(12368);
const coreV1EventSeries_1 = __webpack_require__(70438);
const eventsV1Event_1 = __webpack_require__(52191);
const eventsV1EventList_1 = __webpack_require__(1051);
const eventsV1EventSeries_1 = __webpack_require__(10000);
const eventsV1EventSeries_1 = __webpack_require__(6933);
const extensionsV1beta1HTTPIngressPath_1 = __webpack_require__(73491);
const extensionsV1beta1HTTPIngressRuleValue_1 = __webpack_require__(77652);
const extensionsV1beta1Ingress_1 = __webpack_require__(30621);
@ -95806,7 +95740,7 @@ const v1JSONSchemaProps_1 = __webpack_require__(63580);
const v1Job_1 = __webpack_require__(91260);
const v1JobCondition_1 = __webpack_require__(94069);
const v1JobList_1 = __webpack_require__(13366);
const v1JobSpec_1 = __webpack_require__(32400);
const v1JobSpec_1 = __webpack_require__(93114);
const v1JobStatus_1 = __webpack_require__(57345);
const v1KeyToPath_1 = __webpack_require__(23549);
const v1LabelSelector_1 = __webpack_require__(22567);
@ -95864,7 +95798,7 @@ const v1ObjectReference_1 = __webpack_require__(19051);
const v1Overhead_1 = __webpack_require__(90114);
const v1OwnerReference_1 = __webpack_require__(7924);
const v1PersistentVolume_1 = __webpack_require__(25570);
const v1PersistentVolumeClaim_1 = __webpack_require__(17657);
const v1PersistentVolumeClaim_1 = __webpack_require__(89974);
const v1PersistentVolumeClaimCondition_1 = __webpack_require__(32966);
const v1PersistentVolumeClaimList_1 = __webpack_require__(78594);
const v1PersistentVolumeClaimSpec_1 = __webpack_require__(99911);
@ -96111,7 +96045,7 @@ const v1beta1CustomResourceValidation_1 = __webpack_require__(27347);
const v1beta1Endpoint_1 = __webpack_require__(61730);
const v1beta1EndpointConditions_1 = __webpack_require__(37085);
const v1beta1EndpointPort_1 = __webpack_require__(7423);
const v1beta1EndpointSlice_1 = __webpack_require__(26777);
const v1beta1EndpointSlice_1 = __webpack_require__(34706);
const v1beta1EndpointSliceList_1 = __webpack_require__(98830);
const v1beta1Event_1 = __webpack_require__(93967);
const v1beta1EventList_1 = __webpack_require__(64484);
@ -96215,7 +96149,7 @@ const v2alpha1CronJobStatus_1 = __webpack_require__(2411);
const v2alpha1JobTemplateSpec_1 = __webpack_require__(3849);
const v2beta1ContainerResourceMetricSource_1 = __webpack_require__(37196);
const v2beta1ContainerResourceMetricStatus_1 = __webpack_require__(27287);
const v2beta1CrossVersionObjectReference_1 = __webpack_require__(36502);
const v2beta1CrossVersionObjectReference_1 = __webpack_require__(79262);
const v2beta1ExternalMetricSource_1 = __webpack_require__(43128);
const v2beta1ExternalMetricStatus_1 = __webpack_require__(96606);
const v2beta1HorizontalPodAutoscaler_1 = __webpack_require__(74687);
@ -96241,7 +96175,7 @@ const v2beta2HPAScalingRules_1 = __webpack_require__(33665);
const v2beta2HorizontalPodAutoscaler_1 = __webpack_require__(96952);
const v2beta2HorizontalPodAutoscalerBehavior_1 = __webpack_require__(41473);
const v2beta2HorizontalPodAutoscalerCondition_1 = __webpack_require__(67231);
const v2beta2HorizontalPodAutoscalerList_1 = __webpack_require__(46788);
const v2beta2HorizontalPodAutoscalerList_1 = __webpack_require__(29409);
const v2beta2HorizontalPodAutoscalerSpec_1 = __webpack_require__(17298);
const v2beta2HorizontalPodAutoscalerStatus_1 = __webpack_require__(60715);
const v2beta2MetricIdentifier_1 = __webpack_require__(73280);
@ -105991,7 +105925,7 @@ V1JobList.attributeTypeMap = [
/***/ }),
/***/ 32400:
/***/ 93114:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -109133,7 +109067,7 @@ V1PersistentVolume.attributeTypeMap = [
/***/ }),
/***/ 17657:
/***/ 89974:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -122871,7 +122805,7 @@ V1beta1EndpointPort.attributeTypeMap = [
/***/ }),
/***/ 26777:
/***/ 34706:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -128679,7 +128613,7 @@ V2beta1ContainerResourceMetricStatus.attributeTypeMap = [
/***/ }),
/***/ 36502:
/***/ 79262:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -130063,7 +129997,7 @@ V2beta2HorizontalPodAutoscalerCondition.attributeTypeMap = [
/***/ }),
/***/ 46788:
/***/ 29409:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
@ -130878,7 +130812,7 @@ const tslib_1 = __webpack_require__(75636);
tslib_1.__exportStar(__webpack_require__(14958), exports);
tslib_1.__exportStar(__webpack_require__(5434), exports);
tslib_1.__exportStar(__webpack_require__(56664), exports);
tslib_1.__exportStar(__webpack_require__(48698), exports);
tslib_1.__exportStar(__webpack_require__(61041), exports);
tslib_1.__exportStar(__webpack_require__(7633), exports);
tslib_1.__exportStar(__webpack_require__(62864), exports);
tslib_1.__exportStar(__webpack_require__(32390), exports);
@ -141464,7 +141398,7 @@ module.exports = {
ApplicationAutoScaling: __webpack_require__(25598),
AppStream: __webpack_require__(21730),
AutoScaling: __webpack_require__(31652),
Batch: __webpack_require__(58987),
Batch: __webpack_require__(10000),
Budgets: __webpack_require__(43923),
CloudDirectory: __webpack_require__(56231),
CloudFormation: __webpack_require__(74643),
@ -141509,7 +141443,7 @@ module.exports = {
Glacier: __webpack_require__(63249),
Health: __webpack_require__(21834),
IAM: __webpack_require__(50058),
ImportExport: __webpack_require__(40102),
ImportExport: __webpack_require__(6769),
Inspector: __webpack_require__(89439),
Iot: __webpack_require__(98392),
IotData: __webpack_require__(6564),
@ -141522,7 +141456,7 @@ module.exports = {
MachineLearning: __webpack_require__(82907),
MarketplaceCommerceAnalytics: __webpack_require__(4540),
MarketplaceMetering: __webpack_require__(39297),
MTurk: __webpack_require__(5615),
MTurk: __webpack_require__(79954),
MobileAnalytics: __webpack_require__(66690),
OpsWorks: __webpack_require__(75691),
OpsWorksCM: __webpack_require__(80388),
@ -142237,7 +142171,7 @@ module.exports = AWS.Backup;
/***/ }),
/***/ 58987:
/***/ 10000:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
__webpack_require__(73639);
@ -142457,7 +142391,7 @@ Object.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {
get: function get() {
var model = __webpack_require__(62352);
model.paginators = __webpack_require__(94430)/* .pagination */ .o;
model.waiters = __webpack_require__(76374)/* .waiters */ .V;
model.waiters = __webpack_require__(36502)/* .waiters */ .V;
return model;
},
enumerable: true,
@ -143207,7 +143141,7 @@ apiLoader.services['connectparticipant'] = {};
AWS.ConnectParticipant = Service.defineService('connectparticipant', ['2018-09-07']);
Object.defineProperty(apiLoader.services['connectparticipant'], '2018-09-07', {
get: function get() {
var model = __webpack_require__(92551);
var model = __webpack_require__(46788);
model.paginators = __webpack_require__(2813)/* .pagination */ .o;
return model;
},
@ -143557,7 +143491,7 @@ apiLoader.services['discovery'] = {};
AWS.Discovery = Service.defineService('discovery', ['2015-11-01']);
Object.defineProperty(apiLoader.services['discovery'], '2015-11-01', {
get: function get() {
var model = __webpack_require__(62913);
var model = __webpack_require__(32400);
model.paginators = __webpack_require__(54052)/* .pagination */ .o;
return model;
},
@ -144559,7 +144493,7 @@ apiLoader.services['health'] = {};
AWS.Health = Service.defineService('health', ['2016-08-04']);
Object.defineProperty(apiLoader.services['health'], '2016-08-04', {
get: function get() {
var model = __webpack_require__(88191);
var model = __webpack_require__(48698);
model.paginators = __webpack_require__(87844)/* .pagination */ .o;
return model;
},
@ -144698,7 +144632,7 @@ module.exports = AWS.Imagebuilder;
/***/ }),
/***/ 40102:
/***/ 6769:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
__webpack_require__(73639);
@ -146241,7 +146175,7 @@ module.exports = AWS.MQ;
/***/ }),
/***/ 5615:
/***/ 79954:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
__webpack_require__(73639);
@ -146871,8 +146805,8 @@ AWS.RDSDataService = Service.defineService('rdsdataservice', ['2018-08-01']);
__webpack_require__(64070);
Object.defineProperty(apiLoader.services['rdsdataservice'], '2018-08-01', {
get: function get() {
var model = __webpack_require__(46319);
model.paginators = __webpack_require__(99015)/* .pagination */ .o;
var model = __webpack_require__(4983);
model.paginators = __webpack_require__(1270)/* .pagination */ .o;
return model;
},
enumerable: true,
@ -147076,7 +147010,7 @@ AWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);
Object.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {
get: function get() {
var model = __webpack_require__(6535);
model.paginators = __webpack_require__(21613)/* .pagination */ .o;
model.paginators = __webpack_require__(26777)/* .pagination */ .o;
return model;
},
enumerable: true,
@ -147707,7 +147641,7 @@ apiLoader.services['sns'] = {};
AWS.SNS = Service.defineService('sns', ['2010-03-31']);
Object.defineProperty(apiLoader.services['sns'], '2010-03-31', {
get: function get() {
var model = __webpack_require__(86384);
var model = __webpack_require__(22671);
model.paginators = __webpack_require__(92788)/* .pagination */ .o;
return model;
},
@ -148187,7 +148121,7 @@ AWS.WAFRegional = Service.defineService('wafregional', ['2016-11-28']);
Object.defineProperty(apiLoader.services['wafregional'], '2016-11-28', {
get: function get() {
var model = __webpack_require__(72867);
model.paginators = __webpack_require__(93193)/* .pagination */ .o;
model.paginators = __webpack_require__(68917)/* .pagination */ .o;
return model;
},
enumerable: true,
@ -149422,7 +149356,7 @@ AWS.util.update(AWS, {
* @api private
*/
Model: {
Api: __webpack_require__(15502),
Api: __webpack_require__(17657),
Operation: __webpack_require__(28083),
Shape: __webpack_require__(71349),
Paginator: __webpack_require__(45938),
@ -155794,7 +155728,7 @@ module.exports = AWS.MetadataService;
/***/ }),
/***/ 15502:
/***/ 17657:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var Collection = __webpack_require__(71965);
@ -160586,7 +160520,7 @@ module.exports = AWS.SequentialExecutor;
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
var AWS = __webpack_require__(28437);
var Api = __webpack_require__(15502);
var Api = __webpack_require__(17657);
var regionConfig = __webpack_require__(18262);
var inherit = AWS.util.inherit;
@ -194415,7 +194349,7 @@ module.exports = new Schema({
__webpack_require__(66037)
],
implicit: [
__webpack_require__(22671),
__webpack_require__(65647),
__webpack_require__(94675),
__webpack_require__(89963),
__webpack_require__(15564)
@ -195229,7 +195163,7 @@ module.exports = new Type('tag:yaml.org,2002:merge', {
/***/ }),
/***/ 22671:
/***/ 65647:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
@ -201412,7 +201346,7 @@ module.exports = class Minipass extends Stream {
/***/ }),
/***/ 6769:
/***/ 642:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
// Update with any zlib constants that are added or changed in the future.
@ -201544,7 +201478,7 @@ const assert = __webpack_require__(42357)
const Buffer = __webpack_require__(64293).Buffer
const realZlib = __webpack_require__(78761)
const constants = exports.constants = __webpack_require__(6769)
const constants = exports.constants = __webpack_require__(642)
const Minipass = __webpack_require__(41077)
const OriginalBufferConcat = Buffer.concat
@ -201896,7 +201830,7 @@ if (typeof realZlib.BrotliCompress === 'function') {
const optsArg = __webpack_require__(42853)
const pathArg = __webpack_require__(12930)
const {mkdirpNative, mkdirpNativeSync} = __webpack_require__(4983)
const {mkdirpNative, mkdirpNativeSync} = __webpack_require__(50508)
const {mkdirpManual, mkdirpManualSync} = __webpack_require__(40356)
const {useNative, useNativeSync} = __webpack_require__(54518)
@ -202035,7 +201969,7 @@ module.exports = {mkdirpManual, mkdirpManualSync}
/***/ }),
/***/ 4983:
/***/ 50508:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const {dirname} = __webpack_require__(85622)
@ -203069,7 +203003,7 @@ function PassThrough() {
/***/ }),
/***/ 1270:
/***/ 80028:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
const { strict: assert } = __webpack_require__(42357);
@ -203259,7 +203193,7 @@ const url = __webpack_require__(78835);
const { ParseError } = __webpack_require__(93061);
const jose = __webpack_require__(16425);
const tokenHash = __webpack_require__(1270);
const tokenHash = __webpack_require__(80028);
const base64url = __webpack_require__(61827);
const defaults = __webpack_require__(13098);
@ -207063,7 +206997,7 @@ module.exports = {
"use strict";
var stringify = __webpack_require__(79954);
var stringify = __webpack_require__(9794);
var parse = __webpack_require__(33912);
var formats = __webpack_require__(74907);
@ -207258,7 +207192,7 @@ module.exports = function (str, opts) {
/***/ }),
/***/ 79954:
/***/ 9794:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
@ -225827,7 +225761,7 @@ exports.x = exports.extract = __webpack_require__(75317)
// classes
exports.Pack = __webpack_require__(7900)
exports.Unpack = __webpack_require__(17628)
exports.Parse = __webpack_require__(68917)
exports.Parse = __webpack_require__(78221)
exports.ReadEntry = __webpack_require__(38116)
exports.WriteEntry = __webpack_require__(55450)
exports.Header = __webpack_require__(66043)
@ -226541,7 +226475,7 @@ module.exports = {
// tar -t
const hlo = __webpack_require__(95274)
const Parser = __webpack_require__(68917)
const Parser = __webpack_require__(78221)
const fs = __webpack_require__(35747)
const fsm = __webpack_require__(27714)
const path = __webpack_require__(85622)
@ -227329,7 +227263,7 @@ module.exports = Pack
/***/ }),
/***/ 68917:
/***/ 78221:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
@ -228503,7 +228437,7 @@ exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]]))
// clobbering an fs object to create one of a different type.)
const assert = __webpack_require__(42357)
const Parser = __webpack_require__(68917)
const Parser = __webpack_require__(78221)
const fs = __webpack_require__(35747)
const fsm = __webpack_require__(27714)
const path = __webpack_require__(85622)
@ -249897,7 +249831,7 @@ module.exports = JSON.parse("{\"o\":{\"ListCloudFrontOriginAccessIdentities\":{\
/***/ }),
/***/ 76374:
/***/ 36502:
/***/ ((module) => {
"use strict";
@ -250401,7 +250335,7 @@ module.exports = JSON.parse("{\"o\":{\"ListRealtimeContactAnalysisSegments\":{\"
/***/ }),
/***/ 92551:
/***/ 46788:
/***/ ((module) => {
"use strict";
@ -250593,7 +250527,7 @@ module.exports = JSON.parse("{\"o\":{\"DescribeConnections\":{\"result_key\":\"c
/***/ }),
/***/ 62913:
/***/ 32400:
/***/ ((module) => {
"use strict";
@ -251401,7 +251335,7 @@ module.exports = JSON.parse("{\"o\":{\"GetUsageStatistics\":{\"input_token\":\"N
/***/ }),
/***/ 88191:
/***/ 48698:
/***/ ((module) => {
"use strict";
@ -252961,7 +252895,7 @@ module.exports = JSON.parse("{\"V\":{\"DBInstanceAvailable\":{\"delay\":30,\"ope
/***/ }),
/***/ 46319:
/***/ 4983:
/***/ ((module) => {
"use strict";
@ -252969,7 +252903,7 @@ module.exports = JSON.parse("{\"version\":\"2.0\",\"metadata\":{\"apiVersion\":\
/***/ }),
/***/ 99015:
/***/ 1270:
/***/ ((module) => {
"use strict";
@ -253121,7 +253055,7 @@ module.exports = JSON.parse("{\"version\":\"2.0\",\"metadata\":{\"apiVersion\":\
/***/ }),
/***/ 21613:
/***/ 26777:
/***/ ((module) => {
"use strict";
@ -253585,7 +253519,7 @@ module.exports = JSON.parse("{\"o\":{\"DescribeAddresses\":{\"input_token\":\"Ne
/***/ }),
/***/ 86384:
/***/ 22671:
/***/ ((module) => {
"use strict";
@ -253921,7 +253855,7 @@ module.exports = JSON.parse("{\"version\":\"2.0\",\"metadata\":{\"apiVersion\":\
/***/ }),
/***/ 93193:
/***/ 68917:
/***/ ((module) => {
"use strict";

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
import * as core from '@actions/core';
import { Action, BuildParameters, Cache, Docker, ImageTag, Kubernetes, Output, RemoteBuilder } from './model';
import { Action, BuildParameters, Cache, Docker, ImageTag, Output, RemoteBuilder } from './model';
async function run() {
try {
@ -13,13 +13,8 @@ async function run() {
let builtImage;
switch (buildParameters.remoteBuildCluster) {
case 'k8s':
core.info('Building with Kubernetes');
await new Kubernetes(buildParameters, baseImage).runFullBuildFlow();
break;
case 'aws':
core.info('Building with AWS');
case 'k8s':
await RemoteBuilder.build(buildParameters, baseImage);
break;

View File

@ -9,7 +9,6 @@ import Platform from './platform';
import Project from './project';
import Unity from './unity';
import Versioning from './versioning';
import Kubernetes from './remote-builder/kubernetes-build-platform';
import RemoteBuilder from './remote-builder/remote-builder';
export {
@ -24,6 +23,5 @@ export {
Project,
Unity,
Versioning,
Kubernetes,
RemoteBuilder,
};

View File

@ -10,9 +10,6 @@ import AWSBuildRunner from './aws-build-runner';
import { RemoteBuilderProviderInterface } from './remote-builder-provider-interface';
class AWSBuildEnvironment implements RemoteBuilderProviderInterface {
runFullBuildFlow(): Promise<void> {
throw new Error('Method not implemented.');
}
async runBuildTask(
buildId: string,
stackName: string,
@ -45,10 +42,6 @@ class AWSBuildEnvironment implements RemoteBuilderProviderInterface {
}
}
// static async setupPlatformResources() {
// throw new Error('Method not implemented.');
// }
static getParameterTemplate(p1) {
return `
${p1}:

View File

@ -10,9 +10,6 @@ import KubernetesStorage from './kubernetes-storage';
import RemoteBuilderEnvironmentVariable from './remote-builder-environment-variable';
const base64 = require('base-64');
const repositoryFolder = 'repo';
const buildVolumeFolder = 'data';
// const cacheFolder = 'cache';
class Kubernetes implements RemoteBuilderProviderInterface {
private kubeConfig: KubeConfig;
private kubeClient: k8s.CoreV1Api;
@ -110,6 +107,7 @@ class Kubernetes implements RemoteBuilderProviderInterface {
} catch (error) {
core.info('Running job failed');
await this.cleanup();
core.error(JSON.stringify(error.response, undefined, 4));
throw error;
}
}
@ -126,20 +124,6 @@ class Kubernetes implements RemoteBuilderProviderInterface {
this.jobName = jobName;
}
async runFullBuildFlow() {
core.info('Running Remote Builder on Kubernetes');
try {
await this.runCloneJob();
await this.runBuildJob();
} catch (error) {
core.error(error);
core.error(JSON.stringify(error.response, undefined, 4));
throw error;
}
core.setOutput('volume', this.pvcName);
}
async createSecret(secrets: RemoteBuilderSecret[]) {
const secret = new k8s.V1Secret();
secret.apiVersion = 'v1';
@ -366,62 +350,6 @@ class Kubernetes implements RemoteBuilderProviderInterface {
return pod;
}
async runCloneJob() {
await this.runBuildTask(
this.buildCorrelationId,
'',
'alpine/git',
[
'/bin/ash',
'-c',
`apk update;
apk add unzip;
apk add git-lfs;
apk add jq;
ls /credentials/
export GITHUB_TOKEN=$(cat /credentials/GITHUB_TOKEN);
git clone https://github.com/${process.env.GITHUB_REPOSITORY}.git ${buildVolumeFolder}/${repositoryFolder};
git clone https://github.com/webbertakken/unity-builder.git ${buildVolumeFolder}/builder;
cd ${buildVolumeFolder}/${repositoryFolder};
git checkout $GITHUB_SHA;
ls
echo "end"`,
],
'data',
'data',
[],
[],
);
}
async runBuildJob() {
await this.runBuildTask(
this.buildCorrelationId,
'',
this.baseImage.toString(),
[
'bin/bash',
'-c',
`ls
for f in ./credentials/*; do export $(basename $f)="$(cat $f)"; done
ls /data
ls /data/builder
ls /data/builder/dist
cp -r /data/builder/dist/default-build-script /UnityBuilderAction
cp -r /data/builder/dist/entrypoint.sh /entrypoint.sh
cp -r /data/builder/dist/steps /steps
chmod -R +x /entrypoint.sh
chmod -R +x /steps
/entrypoint.sh
`,
],
'data',
'data',
[],
[],
);
}
async watchUntilPodRunning() {
let success: boolean = false;
core.info(`Watching ${this.podName} ${this.namespace}`);

View File

@ -43,6 +43,7 @@ class KubernetesStorage {
};
const result = await kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc);
core.info(`Persistent Volume Claim ${result.body.metadata?.name} ${pvcName} created`);
core.setOutput('volume', pvcName);
}
}

View File

@ -2,7 +2,6 @@ import RemoteBuilderEnvironmentVariable from './remote-builder-environment-varia
import RemoteBuilderSecret from './remote-builder-secret';
export interface RemoteBuilderProviderInterface {
runFullBuildFlow(): Promise<void>;
runBuildTask(
// eslint-disable-next-line no-unused-vars
buildId: string,

View File

@ -16,10 +16,12 @@ class RemoteBuilder {
try {
switch (buildParameters.remoteBuildCluster) {
case 'aws':
core.info('Building with AWS');
this.RemoteBuilderProviderPlatform = new AWSBuildPlatform();
break;
case 'k8s':
default:
case 'k8s':
core.info('Building with Kubernetes');
this.RemoteBuilderProviderPlatform = new Kubernetes(buildParameters, baseImage);
break;
}