fix
parent
91a64fcf60
commit
1202bcd7d1
|
|
@ -219,6 +219,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
const nanoid_1 = __webpack_require__(39140);
|
const nanoid_1 = __webpack_require__(39140);
|
||||||
const android_versioning_1 = __importDefault(__webpack_require__(43059));
|
const android_versioning_1 = __importDefault(__webpack_require__(43059));
|
||||||
const cloud_runner_constants_1 = __importDefault(__webpack_require__(91311));
|
const cloud_runner_constants_1 = __importDefault(__webpack_require__(91311));
|
||||||
|
const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287));
|
||||||
const input_1 = __importDefault(__webpack_require__(91933));
|
const input_1 = __importDefault(__webpack_require__(91933));
|
||||||
const platform_1 = __importDefault(__webpack_require__(9707));
|
const platform_1 = __importDefault(__webpack_require__(9707));
|
||||||
const unity_versioning_1 = __importDefault(__webpack_require__(17146));
|
const unity_versioning_1 = __importDefault(__webpack_require__(17146));
|
||||||
|
|
@ -273,6 +274,7 @@ class BuildParameters {
|
||||||
awsStackName: input_1.default.awsBaseStackName,
|
awsStackName: input_1.default.awsBaseStackName,
|
||||||
gitSha: input_1.default.gitSha,
|
gitSha: input_1.default.gitSha,
|
||||||
logId: nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 9)(),
|
logId: nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 9)(),
|
||||||
|
buildGuid: cloud_runner_namespace_1.default.generateBuildName(input_1.default.runNumber, input_1.default.targetPlatform),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -1322,7 +1324,7 @@ class AWSTaskRunner {
|
||||||
}
|
}
|
||||||
message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`;
|
message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`;
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.logToFile) {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.logToFile) {
|
||||||
fs_1.default.appendFileSync(`${cloud_runner_state_1.CloudRunnerState.buildGuid}-outputfile.txt`, `${message}\n`);
|
fs_1.default.appendFileSync(`${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}-outputfile.txt`, `${message}\n`);
|
||||||
}
|
}
|
||||||
cloud_runner_logger_1.default.log(message);
|
cloud_runner_logger_1.default.log(message);
|
||||||
}
|
}
|
||||||
|
|
@ -1581,6 +1583,7 @@ const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
||||||
const workflow_composition_root_1 = __webpack_require__(54204);
|
const workflow_composition_root_1 = __webpack_require__(54204);
|
||||||
const cloud_runner_error_1 = __webpack_require__(2600);
|
const cloud_runner_error_1 = __webpack_require__(2600);
|
||||||
|
const task_parameter_serializer_1 = __webpack_require__(35346);
|
||||||
class CloudRunner {
|
class CloudRunner {
|
||||||
static setup(buildParameters) {
|
static setup(buildParameters) {
|
||||||
cloud_runner_logger_1.default.setup();
|
cloud_runner_logger_1.default.setup();
|
||||||
|
|
@ -1604,9 +1607,9 @@ class CloudRunner {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
CloudRunner.setup(buildParameters);
|
CloudRunner.setup(buildParameters);
|
||||||
try {
|
try {
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(cloud_runner_state_1.CloudRunnerState.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
||||||
yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
yield cloud_runner_error_1.CloudRunnerError.handleException(error);
|
yield cloud_runner_error_1.CloudRunnerError.handleException(error);
|
||||||
|
|
@ -1666,7 +1669,7 @@ class CloudRunnerError {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4));
|
cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4));
|
||||||
core.setFailed('Cloud Runner failed');
|
core.setFailed('Cloud Runner failed');
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2309,7 +2312,7 @@ class KubernetesTaskRunner {
|
||||||
let message = chunk.toString();
|
let message = chunk.toString();
|
||||||
message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`;
|
message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`;
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.logToFile) {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.logToFile) {
|
||||||
fs_1.default.appendFileSync(`${cloud_runner_state_1.CloudRunnerState.buildGuid}-outputfile.txt`, `${message}\n`);
|
fs_1.default.appendFileSync(`${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}-outputfile.txt`, `${message}\n`);
|
||||||
}
|
}
|
||||||
logCallback(message);
|
logCallback(message);
|
||||||
next();
|
next();
|
||||||
|
|
@ -2524,7 +2527,7 @@ class TaskParameterSerializer {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'GITHUB_WORKSPACE',
|
name: 'GITHUB_WORKSPACE',
|
||||||
value: `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/${cloud_runner_state_1.CloudRunnerState.buildGuid}/${cloud_runner_state_1.CloudRunnerState.repositoryFolder}/`,
|
value: `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}/${cloud_runner_state_1.CloudRunnerState.repositoryFolder}/`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'BUILD_TARGET',
|
name: 'BUILD_TARGET',
|
||||||
|
|
@ -2558,8 +2561,8 @@ class TaskParameterSerializer {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) }, {
|
array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) }, {
|
||||||
name: Object.keys(cloud_runner_state_1.CloudRunnerState.buildGuid)[0],
|
name: `buildGuid`,
|
||||||
value: cloud_runner_state_1.CloudRunnerState.buildGuid,
|
value: cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid,
|
||||||
});
|
});
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
|
|
@ -2607,20 +2610,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.CloudRunnerState = void 0;
|
exports.CloudRunnerState = void 0;
|
||||||
const path_1 = __importDefault(__webpack_require__(85622));
|
const path_1 = __importDefault(__webpack_require__(85622));
|
||||||
const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287));
|
|
||||||
const task_parameter_serializer_1 = __webpack_require__(35346);
|
|
||||||
class CloudRunnerState {
|
class CloudRunnerState {
|
||||||
static setup(buildParameters) {
|
static setup(buildParameters) {
|
||||||
CloudRunnerState.buildParams = buildParameters;
|
CloudRunnerState.buildParams = buildParameters;
|
||||||
if (CloudRunnerState.buildGuid === undefined) {
|
|
||||||
CloudRunnerState.buildGuid = cloud_runner_namespace_1.default.generateBuildName(CloudRunnerState.runNumber, buildParameters.platform);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
static get branchName() {
|
static get branchName() {
|
||||||
return CloudRunnerState.buildParams.branch;
|
return CloudRunnerState.buildParams.branch;
|
||||||
}
|
}
|
||||||
static get buildPathFull() {
|
static get buildPathFull() {
|
||||||
return path_1.default.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildGuid);
|
return path_1.default.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildParams.buildGuid);
|
||||||
}
|
}
|
||||||
static get builderPathFull() {
|
static get builderPathFull() {
|
||||||
return path_1.default.join(CloudRunnerState.buildPathFull, `builder`);
|
return path_1.default.join(CloudRunnerState.buildPathFull, `builder`);
|
||||||
|
|
@ -2667,16 +2665,6 @@ class CloudRunnerState {
|
||||||
static get cacheFolder() {
|
static get cacheFolder() {
|
||||||
return 'cache';
|
return 'cache';
|
||||||
}
|
}
|
||||||
static readBuildEnvironmentVariables() {
|
|
||||||
return task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables();
|
|
||||||
}
|
|
||||||
static get runNumber() {
|
|
||||||
const runNumber = CloudRunnerState.buildParams.runNumber;
|
|
||||||
if (!runNumber || runNumber === '') {
|
|
||||||
throw new Error('no run number found, exiting');
|
|
||||||
}
|
|
||||||
return runNumber;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
exports.CloudRunnerState = CloudRunnerState;
|
exports.CloudRunnerState = CloudRunnerState;
|
||||||
CloudRunnerState.repositoryFolder = 'repo';
|
CloudRunnerState.repositoryFolder = 'repo';
|
||||||
|
|
@ -2733,7 +2721,7 @@ class BuildStep {
|
||||||
static BuildStep(image, environmentVariables, secrets) {
|
static BuildStep(image, environmentVariables, secrets) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
cloud_runner_logger_1.default.logLine('Starting part 2/2 (build unity project)');
|
cloud_runner_logger_1.default.logLine('Starting part 2/2 (build unity project)');
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildGuid, image, `
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, image, `
|
||||||
export GITHUB_WORKSPACE="${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
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/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/entrypoint.sh" "/entrypoint.sh"
|
||||||
|
|
@ -2744,13 +2732,13 @@ class BuildStep {
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y -q zip
|
apt-get install -y -q zip
|
||||||
cd "${cloud_runner_state_1.CloudRunnerState.libraryFolderFull}/.."
|
cd "${cloud_runner_state_1.CloudRunnerState.libraryFolderFull}/.."
|
||||||
zip -r "lib-$buildGuid.zip" "./Library"
|
zip -r "lib-$BUILD_GUID.zip" "./Library"
|
||||||
mv "lib-$buildGuid.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib"
|
mv "lib-$BUILD_GUID.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib"
|
||||||
ls -lh "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib"
|
ls -lh "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib"
|
||||||
cd "${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
cd "${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
||||||
ls -lh "${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
ls -lh "${cloud_runner_state_1.CloudRunnerState.repoPathFull}"
|
||||||
zip -r "build-$buildGuid.zip" "./${cloud_runner_state_1.CloudRunnerState.buildParams.buildPath}"
|
zip -r "build-$BUILD_GUID.zip" "./${cloud_runner_state_1.CloudRunnerState.buildParams.buildPath}"
|
||||||
mv "build-$buildGuid.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/build-$buildGuid.zip"
|
mv "build-$BUILD_GUID.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/build-$BUILD_GUID.zip"
|
||||||
ls ${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib
|
ls ${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}/lib
|
||||||
echo " "
|
echo " "
|
||||||
ls
|
ls
|
||||||
|
|
@ -2799,7 +2787,7 @@ class SetupStep {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.logLine('Starting step 1/2 download game files from repository, try to use cache');
|
cloud_runner_logger_1.default.logLine('Starting step 1/2 download game files from repository, try to use cache');
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildGuid, image, `
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, image, `
|
||||||
apk update -q
|
apk update -q
|
||||||
apk add unzip zip git-lfs jq tree nodejs -q
|
apk add unzip zip git-lfs jq tree nodejs -q
|
||||||
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
|
||||||
|
|
@ -2841,6 +2829,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.BuildAutomationWorkflow = void 0;
|
exports.BuildAutomationWorkflow = void 0;
|
||||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const task_parameter_serializer_1 = __webpack_require__(35346);
|
||||||
const cloud_runner_state_1 = __webpack_require__(70912);
|
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||||
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
const cloud_runner_step_state_1 = __webpack_require__(64854);
|
||||||
const build_step_1 = __webpack_require__(91491);
|
const build_step_1 = __webpack_require__(91491);
|
||||||
|
|
@ -2861,13 +2850,13 @@ class BuildAutomationWorkflow {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
|
cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`);
|
||||||
yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
cloud_runner_logger_1.default.logWithTime('Download repository step time');
|
cloud_runner_logger_1.default.logWithTime('Download repository step time');
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps !== '') {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps !== '') {
|
||||||
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps);
|
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps);
|
||||||
}
|
}
|
||||||
cloud_runner_logger_1.default.logWithTime('Pre build step(s) time');
|
cloud_runner_logger_1.default.logWithTime('Pre build step(s) time');
|
||||||
yield 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));
|
yield new build_step_1.BuildStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
cloud_runner_logger_1.default.logWithTime('Build time');
|
cloud_runner_logger_1.default.logWithTime('Build time');
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps !== '') {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps !== '') {
|
||||||
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps);
|
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps);
|
||||||
|
|
@ -2909,6 +2898,7 @@ const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
const cloud_runner_state_1 = __webpack_require__(70912);
|
const cloud_runner_state_1 = __webpack_require__(70912);
|
||||||
const yaml_1 = __importDefault(__webpack_require__(13552));
|
const yaml_1 = __importDefault(__webpack_require__(13552));
|
||||||
const __1 = __webpack_require__(41359);
|
const __1 = __webpack_require__(41359);
|
||||||
|
const task_parameter_serializer_1 = __webpack_require__(35346);
|
||||||
class CustomWorkflow {
|
class CustomWorkflow {
|
||||||
static runCustomJob(buildSteps) {
|
static runCustomJob(buildSteps) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
|
@ -2925,7 +2915,7 @@ class CustomWorkflow {
|
||||||
};
|
};
|
||||||
return secret;
|
return secret;
|
||||||
});
|
});
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildGuid, step['image'], step['commands'], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), [...cloud_runner_state_1.CloudRunnerState.defaultSecrets, ...stepSecrets]);
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, step['image'], step['commands'], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), [...cloud_runner_state_1.CloudRunnerState.defaultSecrets, ...stepSecrets]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
|
|
@ -2981,7 +2971,7 @@ class EphemeralGitHubRunnerWorkflow {
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.log(`Cloud Runner is running in ephemeral GitHub runner mode`);
|
cloud_runner_logger_1.default.log(`Cloud Runner is running in ephemeral GitHub runner mode`);
|
||||||
const installAndStartRunner = ' cd ../.. && ls && mkdir actions-runner && cd actions-runner && curl -O -L https://github.com/actions/runner/releases/download/v2.283.1/actions-runner-linux-x64-2.283.1.tar.gz && tar xzf ./actions-runner-linux-x64-2.283.1.tar.gz';
|
const installAndStartRunner = ' cd ../.. && ls && mkdir actions-runner && cd actions-runner && curl -O -L https://github.com/actions/runner/releases/download/v2.283.1/actions-runner-linux-x64-2.283.1.tar.gz && tar xzf ./actions-runner-linux-x64-2.283.1.tar.gz';
|
||||||
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildGuid, image, installAndStartRunner, `/runner`, `/runner`, environmentVariables, secrets);
|
yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, image, installAndStartRunner, `/runner`, `/runner`, environmentVariables, secrets);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
throw error;
|
throw error;
|
||||||
|
|
@ -3020,6 +3010,7 @@ 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 build_automation_workflow_1 = __webpack_require__(94655);
|
const build_automation_workflow_1 = __webpack_require__(94655);
|
||||||
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
|
||||||
|
const task_parameter_serializer_1 = __webpack_require__(35346);
|
||||||
class WorkflowCompositionRoot {
|
class WorkflowCompositionRoot {
|
||||||
run(cloudRunnerStepState) {
|
run(cloudRunnerStepState) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
|
|
@ -3036,13 +3027,13 @@ class WorkflowCompositionRoot {
|
||||||
try {
|
try {
|
||||||
cloud_runner_logger_1.default.log(`Workflow specified: ${cloud_runner_state_1.CloudRunnerState.buildParams.customJob}`);
|
cloud_runner_logger_1.default.log(`Workflow specified: ${cloud_runner_state_1.CloudRunnerState.buildParams.customJob}`);
|
||||||
if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === '') {
|
if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === '') {
|
||||||
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));
|
yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
}
|
}
|
||||||
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === 'ephemeral') {
|
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === '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, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
}
|
}
|
||||||
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === 'download') {
|
else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === 'download') {
|
||||||
yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', cloud_runner_state_1.CloudRunnerState.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.customJob);
|
yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.customJob);
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,7 @@
|
||||||
import { customAlphabet } from 'nanoid';
|
import { customAlphabet } from 'nanoid';
|
||||||
import AndroidVersioning from './android-versioning';
|
import AndroidVersioning from './android-versioning';
|
||||||
import CloudRunnerConstants from './cloud-runner/services/cloud-runner-constants';
|
import CloudRunnerConstants from './cloud-runner/services/cloud-runner-constants';
|
||||||
|
import CloudRunnerNamespace from './cloud-runner/services/cloud-runner-namespace';
|
||||||
import Input from './input';
|
import Input from './input';
|
||||||
import Platform from './platform';
|
import Platform from './platform';
|
||||||
import UnityVersioning from './unity-versioning';
|
import UnityVersioning from './unity-versioning';
|
||||||
|
|
@ -49,6 +50,7 @@ class BuildParameters {
|
||||||
public logToFile!: boolean;
|
public logToFile!: boolean;
|
||||||
public gitSha!: string;
|
public gitSha!: string;
|
||||||
public logId!: string;
|
public logId!: string;
|
||||||
|
public buildGuid!: string;
|
||||||
|
|
||||||
static async create(): Promise<BuildParameters> {
|
static async create(): Promise<BuildParameters> {
|
||||||
const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle);
|
const buildFile = this.parseBuildFile(Input.buildName, Input.targetPlatform, Input.androidAppBundle);
|
||||||
|
|
@ -103,6 +105,7 @@ class BuildParameters {
|
||||||
awsStackName: Input.awsBaseStackName,
|
awsStackName: Input.awsBaseStackName,
|
||||||
gitSha: Input.gitSha,
|
gitSha: Input.gitSha,
|
||||||
logId: customAlphabet(CloudRunnerConstants.alphabet, 9)(),
|
logId: customAlphabet(CloudRunnerConstants.alphabet, 9)(),
|
||||||
|
buildGuid: CloudRunnerNamespace.generateBuildName(Input.runNumber, Input.targetPlatform),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,7 @@ class AWSTaskRunner {
|
||||||
}
|
}
|
||||||
message = `[${CloudRunnerStatics.logPrefix}] ${message}`;
|
message = `[${CloudRunnerStatics.logPrefix}] ${message}`;
|
||||||
if (CloudRunnerState.buildParams.logToFile) {
|
if (CloudRunnerState.buildParams.logToFile) {
|
||||||
fs.appendFileSync(`${CloudRunnerState.buildGuid}-outputfile.txt`, `${message}\n`);
|
fs.appendFileSync(`${CloudRunnerState.buildParams.buildGuid}-outputfile.txt`, `${message}\n`);
|
||||||
}
|
}
|
||||||
CloudRunnerLogger.log(message);
|
CloudRunnerLogger.log(message);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ describe('Cloud Runner', () => {
|
||||||
buildParameter.logToFile = true;
|
buildParameter.logToFile = true;
|
||||||
const baseImage = new ImageTag(buildParameter);
|
const baseImage = new ImageTag(buildParameter);
|
||||||
await CloudRunner.run(buildParameter, baseImage.toString());
|
await CloudRunner.run(buildParameter, baseImage.toString());
|
||||||
const testOutput = `${CloudRunnerState.buildGuid}-outputfile.txt`;
|
const testOutput = `${CloudRunnerState.buildParams.buildGuid}-outputfile.txt`;
|
||||||
expect(fs.existsSync(testOutput)).toBeTruthy();
|
expect(fs.existsSync(testOutput)).toBeTruthy();
|
||||||
const file = fs.readFileSync(testOutput, 'utf-8').toString();
|
const file = fs.readFileSync(testOutput, 'utf-8').toString();
|
||||||
expect(file).toContain(JSON.stringify(buildParameter));
|
expect(file).toContain(JSON.stringify(buildParameter));
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import CloudRunnerLogger from './services/cloud-runner-logger';
|
||||||
import { CloudRunnerStepState } from './state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from './state/cloud-runner-step-state';
|
||||||
import { WorkflowCompositionRoot } from './workflows/workflow-composition-root';
|
import { WorkflowCompositionRoot } from './workflows/workflow-composition-root';
|
||||||
import { CloudRunnerError } from './error/cloud-runner-error';
|
import { CloudRunnerError } from './error/cloud-runner-error';
|
||||||
|
import { TaskParameterSerializer } from './services/task-parameter-serializer';
|
||||||
|
|
||||||
class CloudRunner {
|
class CloudRunner {
|
||||||
private static setup(buildParameters: BuildParameters) {
|
private static setup(buildParameters: BuildParameters) {
|
||||||
|
|
@ -32,7 +33,7 @@ class CloudRunner {
|
||||||
CloudRunner.setup(buildParameters);
|
CloudRunner.setup(buildParameters);
|
||||||
try {
|
try {
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(
|
await CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
CloudRunnerState.buildParams,
|
CloudRunnerState.buildParams,
|
||||||
CloudRunnerState.branchName,
|
CloudRunnerState.branchName,
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
|
|
@ -40,12 +41,12 @@ class CloudRunner {
|
||||||
await new WorkflowCompositionRoot().run(
|
await new WorkflowCompositionRoot().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
baseImage,
|
baseImage,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(
|
await CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
CloudRunnerState.buildParams,
|
CloudRunnerState.buildParams,
|
||||||
CloudRunnerState.branchName,
|
CloudRunnerState.branchName,
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ export class CloudRunnerError {
|
||||||
CloudRunnerLogger.error(JSON.stringify(error, undefined, 4));
|
CloudRunnerLogger.error(JSON.stringify(error, undefined, 4));
|
||||||
core.setFailed('Cloud Runner failed');
|
core.setFailed('Cloud Runner failed');
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(
|
await CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
CloudRunnerState.buildParams,
|
CloudRunnerState.buildParams,
|
||||||
CloudRunnerState.branchName,
|
CloudRunnerState.branchName,
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class KubernetesTaskRunner {
|
||||||
let message = chunk.toString();
|
let message = chunk.toString();
|
||||||
message = `[${CloudRunnerStatics.logPrefix}] ${message}`;
|
message = `[${CloudRunnerStatics.logPrefix}] ${message}`;
|
||||||
if (CloudRunnerState.buildParams.logToFile) {
|
if (CloudRunnerState.buildParams.logToFile) {
|
||||||
fs.appendFileSync(`${CloudRunnerState.buildGuid}-outputfile.txt`, `${message}\n`);
|
fs.appendFileSync(`${CloudRunnerState.buildParams.buildGuid}-outputfile.txt`, `${message}\n`);
|
||||||
}
|
}
|
||||||
logCallback(message);
|
logCallback(message);
|
||||||
next();
|
next();
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ export class TaskParameterSerializer {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'GITHUB_WORKSPACE',
|
name: 'GITHUB_WORKSPACE',
|
||||||
value: `/${CloudRunnerState.buildVolumeFolder}/${CloudRunnerState.buildGuid}/${CloudRunnerState.repositoryFolder}/`,
|
value: `/${CloudRunnerState.buildVolumeFolder}/${CloudRunnerState.buildParams.buildGuid}/${CloudRunnerState.repositoryFolder}/`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'BUILD_TARGET',
|
name: 'BUILD_TARGET',
|
||||||
|
|
@ -55,8 +55,8 @@ export class TaskParameterSerializer {
|
||||||
array.push(
|
array.push(
|
||||||
{ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) },
|
{ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) },
|
||||||
{
|
{
|
||||||
name: Object.keys(CloudRunnerState.buildGuid)[0],
|
name: `buildGuid`,
|
||||||
value: CloudRunnerState.buildGuid,
|
value: CloudRunnerState.buildParams.buildGuid,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
return array;
|
return array;
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,16 @@
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { BuildParameters } from '../..';
|
import { BuildParameters } from '../..';
|
||||||
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
|
|
||||||
import CloudRunnerNamespace from '../services/cloud-runner-namespace';
|
|
||||||
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
|
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
|
||||||
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
|
||||||
|
|
||||||
export class CloudRunnerState {
|
export class CloudRunnerState {
|
||||||
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
|
public static CloudRunnerProviderPlatform: CloudRunnerProviderInterface;
|
||||||
public static buildParams: BuildParameters;
|
public static buildParams: BuildParameters;
|
||||||
public static defaultSecrets: CloudRunnerSecret[];
|
public static defaultSecrets: CloudRunnerSecret[];
|
||||||
public static buildGuid: string;
|
|
||||||
public static readonly repositoryFolder = 'repo';
|
public static readonly repositoryFolder = 'repo';
|
||||||
|
|
||||||
static setup(buildParameters: BuildParameters) {
|
static setup(buildParameters: BuildParameters) {
|
||||||
CloudRunnerState.buildParams = buildParameters;
|
CloudRunnerState.buildParams = buildParameters;
|
||||||
if (CloudRunnerState.buildGuid === undefined) {
|
|
||||||
CloudRunnerState.buildGuid = CloudRunnerNamespace.generateBuildName(
|
|
||||||
CloudRunnerState.runNumber,
|
|
||||||
buildParameters.platform,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static get branchName(): string {
|
public static get branchName(): string {
|
||||||
|
|
@ -28,7 +18,7 @@ export class CloudRunnerState {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static get buildPathFull(): string {
|
public static get buildPathFull(): string {
|
||||||
return path.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildGuid);
|
return path.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildParams.buildGuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static get builderPathFull(): string {
|
public static get builderPathFull(): string {
|
||||||
|
|
@ -90,16 +80,4 @@ export class CloudRunnerState {
|
||||||
public static get cacheFolder() {
|
public static get cacheFolder() {
|
||||||
return 'cache';
|
return 'cache';
|
||||||
}
|
}
|
||||||
|
|
||||||
public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] {
|
|
||||||
return TaskParameterSerializer.readBuildEnvironmentVariables();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static get runNumber() {
|
|
||||||
const runNumber = CloudRunnerState.buildParams.runNumber;
|
|
||||||
if (!runNumber || runNumber === '') {
|
|
||||||
throw new Error('no run number found, exiting');
|
|
||||||
}
|
|
||||||
return runNumber;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ export class BuildStep implements StepInterface {
|
||||||
) {
|
) {
|
||||||
CloudRunnerLogger.logLine('Starting part 2/2 (build unity project)');
|
CloudRunnerLogger.logLine('Starting part 2/2 (build unity project)');
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
image,
|
image,
|
||||||
`
|
`
|
||||||
export GITHUB_WORKSPACE="${CloudRunnerState.repoPathFull}"
|
export GITHUB_WORKSPACE="${CloudRunnerState.repoPathFull}"
|
||||||
|
|
@ -34,13 +34,13 @@ export class BuildStep implements StepInterface {
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get install -y -q zip
|
apt-get install -y -q zip
|
||||||
cd "${CloudRunnerState.libraryFolderFull}/.."
|
cd "${CloudRunnerState.libraryFolderFull}/.."
|
||||||
zip -r "lib-$buildGuid.zip" "./Library"
|
zip -r "lib-$BUILD_GUID.zip" "./Library"
|
||||||
mv "lib-$buildGuid.zip" "${CloudRunnerState.cacheFolderFull}/lib"
|
mv "lib-$BUILD_GUID.zip" "${CloudRunnerState.cacheFolderFull}/lib"
|
||||||
ls -lh "${CloudRunnerState.cacheFolderFull}/lib"
|
ls -lh "${CloudRunnerState.cacheFolderFull}/lib"
|
||||||
cd "${CloudRunnerState.repoPathFull}"
|
cd "${CloudRunnerState.repoPathFull}"
|
||||||
ls -lh "${CloudRunnerState.repoPathFull}"
|
ls -lh "${CloudRunnerState.repoPathFull}"
|
||||||
zip -r "build-$buildGuid.zip" "./${CloudRunnerState.buildParams.buildPath}"
|
zip -r "build-$BUILD_GUID.zip" "./${CloudRunnerState.buildParams.buildPath}"
|
||||||
mv "build-$buildGuid.zip" "${CloudRunnerState.cacheFolderFull}/build-$buildGuid.zip"
|
mv "build-$BUILD_GUID.zip" "${CloudRunnerState.cacheFolderFull}/build-$BUILD_GUID.zip"
|
||||||
ls ${CloudRunnerState.cacheFolderFull}/lib
|
ls ${CloudRunnerState.cacheFolderFull}/lib
|
||||||
echo " "
|
echo " "
|
||||||
ls
|
ls
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ export class SetupStep implements StepInterface {
|
||||||
try {
|
try {
|
||||||
CloudRunnerLogger.logLine('Starting step 1/2 download game files from repository, try to use cache');
|
CloudRunnerLogger.logLine('Starting step 1/2 download game files from repository, try to use cache');
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
image,
|
image,
|
||||||
`
|
`
|
||||||
apk update -q
|
apk update -q
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
||||||
import { CloudRunnerState } from '../state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
import { CloudRunnerStepState } from '../state/cloud-runner-step-state';
|
||||||
import { BuildStep } from '../steps/build-step';
|
import { BuildStep } from '../steps/build-step';
|
||||||
|
|
@ -22,7 +23,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
await new SetupStep().run(
|
await new SetupStep().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
'alpine/git',
|
'alpine/git',
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -35,7 +36,7 @@ export class BuildAutomationWorkflow implements WorkflowInterface {
|
||||||
await new BuildStep().run(
|
await new BuildStep().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
baseImage,
|
baseImage,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import CloudRunnerSecret from '../services/cloud-runner-secret';
|
||||||
import { CloudRunnerState } from '../state/cloud-runner-state';
|
import { CloudRunnerState } from '../state/cloud-runner-state';
|
||||||
import YAML from 'yaml';
|
import YAML from 'yaml';
|
||||||
import { Input } from '../..';
|
import { Input } from '../..';
|
||||||
|
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
||||||
|
|
||||||
export class CustomWorkflow {
|
export class CustomWorkflow {
|
||||||
public static async runCustomJob(buildSteps) {
|
public static async runCustomJob(buildSteps) {
|
||||||
|
|
@ -20,12 +21,12 @@ export class CustomWorkflow {
|
||||||
return secret;
|
return secret;
|
||||||
});
|
});
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
step['image'],
|
step['image'],
|
||||||
step['commands'],
|
step['commands'],
|
||||||
`/${CloudRunnerState.buildVolumeFolder}`,
|
`/${CloudRunnerState.buildVolumeFolder}`,
|
||||||
`/${CloudRunnerState.buildVolumeFolder}`,
|
`/${CloudRunnerState.buildVolumeFolder}`,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
[...CloudRunnerState.defaultSecrets, ...stepSecrets],
|
[...CloudRunnerState.defaultSecrets, ...stepSecrets],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ export class EphemeralGitHubRunnerWorkflow implements WorkflowInterface {
|
||||||
const installAndStartRunner =
|
const installAndStartRunner =
|
||||||
' cd ../.. && ls && mkdir actions-runner && cd actions-runner && curl -O -L https://github.com/actions/runner/releases/download/v2.283.1/actions-runner-linux-x64-2.283.1.tar.gz && tar xzf ./actions-runner-linux-x64-2.283.1.tar.gz';
|
' cd ../.. && ls && mkdir actions-runner && cd actions-runner && curl -O -L https://github.com/actions/runner/releases/download/v2.283.1/actions-runner-linux-x64-2.283.1.tar.gz && tar xzf ./actions-runner-linux-x64-2.283.1.tar.gz';
|
||||||
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
await CloudRunnerState.CloudRunnerProviderPlatform.runTask(
|
||||||
CloudRunnerState.buildGuid,
|
CloudRunnerState.buildParams.buildGuid,
|
||||||
image,
|
image,
|
||||||
installAndStartRunner,
|
installAndStartRunner,
|
||||||
`/runner`,
|
`/runner`,
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import { EphemeralGitHubRunnerWorkflow } from './ephemeral-github-runner-workflo
|
||||||
import { WorkflowInterface } from './workflow-interface';
|
import { WorkflowInterface } from './workflow-interface';
|
||||||
import { BuildAutomationWorkflow } from './build-automation-workflow';
|
import { BuildAutomationWorkflow } from './build-automation-workflow';
|
||||||
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
import CloudRunnerLogger from '../services/cloud-runner-logger';
|
||||||
|
import { TaskParameterSerializer } from '../services/task-parameter-serializer';
|
||||||
|
|
||||||
export class WorkflowCompositionRoot implements WorkflowInterface {
|
export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
async run(cloudRunnerStepState: CloudRunnerStepState) {
|
async run(cloudRunnerStepState: CloudRunnerStepState) {
|
||||||
|
|
@ -23,7 +24,7 @@ export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
await new BuildAutomationWorkflow().run(
|
await new BuildAutomationWorkflow().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
baseImage,
|
baseImage,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -31,7 +32,7 @@ export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
await new EphemeralGitHubRunnerWorkflow().run(
|
await new EphemeralGitHubRunnerWorkflow().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
baseImage,
|
baseImage,
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
@ -39,7 +40,7 @@ export class WorkflowCompositionRoot implements WorkflowInterface {
|
||||||
await new SetupStep().run(
|
await new SetupStep().run(
|
||||||
new CloudRunnerStepState(
|
new CloudRunnerStepState(
|
||||||
'alpine/git',
|
'alpine/git',
|
||||||
CloudRunnerState.readBuildEnvironmentVariables(),
|
TaskParameterSerializer.readBuildEnvironmentVariables(),
|
||||||
CloudRunnerState.defaultSecrets,
|
CloudRunnerState.defaultSecrets,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue