Fix: Build Automation workflow ran ephemeral runner
parent
27d838d95b
commit
16764313c7
|
|
@ -61,4 +61,10 @@ jobs:
|
||||||
targetPlatform: ${{ matrix.targetPlatform }}
|
targetPlatform: ${{ matrix.targetPlatform }}
|
||||||
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
githubToken: ${{ secrets.GITHUB_TOKEN }}
|
||||||
awsBaseStackName: game-ci-stack
|
awsBaseStackName: game-ci-stack
|
||||||
customBuildSteps: ephemeral
|
customBuildSteps: >-
|
||||||
|
- name: 'step 1'
|
||||||
|
image: 'alpine'
|
||||||
|
commands: ['printenv']
|
||||||
|
secrets:
|
||||||
|
- name: 'testCustomSecret'
|
||||||
|
value: 'VALUEXXX'
|
||||||
|
|
|
||||||
|
|
@ -2164,6 +2164,126 @@ class CloudRunnerStepState {
|
||||||
exports.CloudRunnerStepState = CloudRunnerStepState;
|
exports.CloudRunnerStepState = CloudRunnerStepState;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 91491:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.BuildStep = void 0;
|
||||||
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||||
|
class BuildStep {
|
||||||
|
run(cloudRunnerStepState) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield BuildStep.BuildStep(cloudRunnerStepState.image, cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
static BuildStep(image, environmentVariables, secrets) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
cloud_runner_logger_1.default.log('Starting part 2/4 (build unity project)');
|
||||||
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runBuildTask(cloud_runner_state_1.CloudRunnerState.buildGuid, image, [
|
||||||
|
`
|
||||||
|
printenv
|
||||||
|
export GITHUB_WORKSPACE="${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
||||||
|
cp -r "${cloud_runner_state_1.CloudRunnerState.builderPathFull}/dist/default-build-script/" "/UnityBuilderAction"
|
||||||
|
cp -r "${cloud_runner_state_1.CloudRunnerState.builderPathFull}/dist/entrypoint.sh" "/entrypoint.sh"
|
||||||
|
cp -r "${cloud_runner_state_1.CloudRunnerState.builderPathFull}/dist/steps/" "/steps"
|
||||||
|
chmod -R +x "/entrypoint.sh"
|
||||||
|
chmod -R +x "/steps"
|
||||||
|
/entrypoint.sh
|
||||||
|
${process.env.DEBUG ? '' : '#'}tree -L 4 "${cloud_runner_state_1.CloudRunnerState.buildPathFull}"
|
||||||
|
${process.env.DEBUG ? '' : '#'}ls -lh "/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}"
|
||||||
|
`,
|
||||||
|
], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.projectPathFull}`, environmentVariables, secrets);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.BuildStep = BuildStep;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 6400:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.CompressionStep = void 0;
|
||||||
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||||
|
class CompressionStep {
|
||||||
|
run(cloudRunnerStepState) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield CompressionStep.CompressionStep(cloudRunnerStepState.environment, cloudRunnerStepState.secrets);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
static CompressionStep(environmentVariables, secrets) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
cloud_runner_logger_1.default.log('Starting step 3/4 build compression');
|
||||||
|
// Cleanup
|
||||||
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runBuildTask(cloud_runner_state_1.CloudRunnerState.buildGuid, 'alpine', [
|
||||||
|
`
|
||||||
|
printenv
|
||||||
|
apk update -q
|
||||||
|
apk add zip tree -q
|
||||||
|
${process.env.DEBUG ? '' : '#'}tree -L 4 "$repoPathFull"
|
||||||
|
${process.env.DEBUG ? '' : '#'}ls -lh "$repoPathFull"
|
||||||
|
cd "$libraryFolderFull/.."
|
||||||
|
zip -r "lib-$BUILDID.zip" "./Library"
|
||||||
|
mv "lib-$BUILDID.zip" "/$cacheFolderFull/lib"
|
||||||
|
cd "$repoPathFull"
|
||||||
|
ls -lh "$repoPathFull"
|
||||||
|
zip -r "build-$BUILDID.zip" "./${cloud_runner_state_1.CloudRunnerState.buildParams.buildPath}"
|
||||||
|
mv "build-$BUILDID.zip" "/$cacheFolderFull/build-$BUILDID.zip"
|
||||||
|
${process.env.DEBUG ? '' : '#'}tree -L 4 "/$cacheFolderFull"
|
||||||
|
${process.env.DEBUG ? '' : '#'}tree -L 4 "/$cacheFolderFull/.."
|
||||||
|
${process.env.DEBUG ? '' : '#'}tree -L 4 "$repoPathFull"
|
||||||
|
${process.env.DEBUG ? '' : '#'}ls -lh "$repoPathFull"
|
||||||
|
`,
|
||||||
|
], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, [
|
||||||
|
...environmentVariables,
|
||||||
|
...[
|
||||||
|
{
|
||||||
|
name: 'cacheFolderFull',
|
||||||
|
value: cloud_runner_state_1.CloudRunnerState.cacheFolderFull,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
], secrets);
|
||||||
|
cloud_runner_logger_1.default.log('compression step complete');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.CompressionStep = CompressionStep;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 12929:
|
/***/ 12929:
|
||||||
|
|
@ -2219,6 +2339,60 @@ class DownloadRepositoryStep {
|
||||||
exports.DownloadRepositoryStep = DownloadRepositoryStep;
|
exports.DownloadRepositoryStep = DownloadRepositoryStep;
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 94655:
|
||||||
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||||
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||||
|
return new (P || (P = Promise))(function (resolve, reject) {
|
||||||
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||||
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||||
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||||
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
|
};
|
||||||
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
|
exports.BuildAutomationWorkflow = void 0;
|
||||||
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||||
|
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
||||||
|
const build_step_1 = __webpack_require__(91491);
|
||||||
|
const compression_step_1 = __webpack_require__(6400);
|
||||||
|
const download_repository_step_1 = __webpack_require__(12929);
|
||||||
|
const custom_workflow_1 = __webpack_require__(3786);
|
||||||
|
class BuildAutomationWorkflow {
|
||||||
|
run(cloudRunnerStepState) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
yield BuildAutomationWorkflow.standardBuildAutomation(cloudRunnerStepState.image);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
static standardBuildAutomation(baseImage) {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
|
||||||
|
yield new download_repository_step_1.DownloadRepositoryStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
|
cloud_runner_logger_1.default.logWithTime('Download repository step time');
|
||||||
|
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps);
|
||||||
|
cloud_runner_logger_1.default.logWithTime('Pre build step(s) time');
|
||||||
|
new build_step_1.BuildStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
|
cloud_runner_logger_1.default.logWithTime('Build time');
|
||||||
|
yield new compression_step_1.CompressionStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine', cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
|
cloud_runner_logger_1.default.logWithTime('Compression time');
|
||||||
|
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps);
|
||||||
|
cloud_runner_logger_1.default.logWithTime('Post build step(s) time');
|
||||||
|
cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.BuildAutomationWorkflow = BuildAutomationWorkflow;
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 3786:
|
/***/ 3786:
|
||||||
|
|
@ -2348,6 +2522,7 @@ const download_repository_step_1 = __webpack_require__(12929);
|
||||||
const custom_workflow_1 = __webpack_require__(3786);
|
const custom_workflow_1 = __webpack_require__(3786);
|
||||||
const ephemeral_github_runner_workflow_1 = __webpack_require__(37092);
|
const ephemeral_github_runner_workflow_1 = __webpack_require__(37092);
|
||||||
const core = __importStar(__webpack_require__(42186));
|
const core = __importStar(__webpack_require__(42186));
|
||||||
|
const build_automation_workflow_1 = __webpack_require__(94655);
|
||||||
class WorkflowCompositionRoot {
|
class WorkflowCompositionRoot {
|
||||||
run(cloudRunnerStepState) {
|
run(cloudRunnerStepState) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
|
@ -2358,7 +2533,7 @@ class WorkflowCompositionRoot {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
core.info(`Custom build steps: ${cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps}`);
|
core.info(`Custom build steps: ${cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps}`);
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps === '') {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps === '') {
|
||||||
yield new ephemeral_github_runner_workflow_1.EphemeralGitHubRunnerWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
}
|
}
|
||||||
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps === 'ephemeral') {
|
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customBuildSteps === 'ephemeral') {
|
||||||
yield new ephemeral_github_runner_workflow_1.EphemeralGitHubRunnerWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
yield new ephemeral_github_runner_workflow_1.EphemeralGitHubRunnerWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -5,6 +5,7 @@ import { CustomWorkflow } from './custom-workflow';
|
||||||
import { EphemeralGitHubRunnerWorkflow } from './ephemeral-github-runner-workflow';
|
import { EphemeralGitHubRunnerWorkflow } from './ephemeral-github-runner-workflow';
|
||||||
import { WorkflowInterface } from './workflow-interface';
|
import { WorkflowInterface } from './workflow-interface';
|
||||||
import * as core from '@actions/core';
|
import * as core from '@actions/core';
|
||||||
|
import { BuildAutomationWorkflow } from './build-automation-workflow';
|
||||||
|
|
||||||
export class WorkflowCompositionRoot implements WorkflowInterface {
|
export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
async run(cloudRunnerStepState: CloudRunnerStepState) {
|
async run(cloudRunnerStepState: CloudRunnerStepState) {
|
||||||
|
|
@ -14,7 +15,7 @@ export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
private static async runJob(baseImage: any) {
|
private static async runJob(baseImage: any) {
|
||||||
core.info(`Custom build steps: ${CloudRunnerState.buildParams.customBuildSteps}`);
|
core.info(`Custom build steps: ${CloudRunnerState.buildParams.customBuildSteps}`);
|
||||||
if (CloudRunnerState.buildParams.customBuildSteps === '') {
|
if (CloudRunnerState.buildParams.customBuildSteps === '') {
|
||||||
await new EphemeralGitHubRunnerWorkflow().run(
|
await new BuildAutomationWorkflow().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
baseImage,
|
baseImage,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
CloudRunnerState.readBuildEnvironmentVariables(),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue