run steam deployment

pull/263/head
Frostebite 2021-05-02 05:06:07 +01:00
parent ec48ac196a
commit 98acf5c011
4 changed files with 46 additions and 14 deletions

25
dist/index.js vendored
View File

@ -1165,7 +1165,7 @@ exports.default = Project;
/***/ }), /***/ }),
/***/ 50148: /***/ 70187:
/***/ (function(__unused_webpack_module, exports, __webpack_require__) { /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
"use strict"; "use strict";
@ -1209,7 +1209,7 @@ const core = __importStar(__webpack_require__(42186));
const remote_builder_alphabet_1 = __importDefault(__webpack_require__(41322)); const remote_builder_alphabet_1 = __importDefault(__webpack_require__(41322));
const aws_build_runner_1 = __importDefault(__webpack_require__(11201)); const aws_build_runner_1 = __importDefault(__webpack_require__(11201));
class AWSBuildEnvironment { class AWSBuildEnvironment {
static run(buildId, stackName, image, commands, mountdir, workingdir, environment, secrets) { static runBuild(buildId, stackName, image, commands, mountdir, workingdir, environment, secrets) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
const ECS = new SDK.ECS(); const ECS = new SDK.ECS();
const CF = new SDK.CloudFormation(); const CF = new SDK.CloudFormation();
@ -1620,7 +1620,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", ({ value: true })); Object.defineProperty(exports, "__esModule", ({ value: true }));
const nanoid_1 = __webpack_require__(39140); const nanoid_1 = __webpack_require__(39140);
const aws_build_environment_1 = __importDefault(__webpack_require__(50148)); const aws_build_platform_1 = __importDefault(__webpack_require__(70187));
const core = __importStar(__webpack_require__(42186)); const core = __importStar(__webpack_require__(42186));
const remote_builder_alphabet_1 = __importDefault(__webpack_require__(41322)); const remote_builder_alphabet_1 = __importDefault(__webpack_require__(41322));
const repositoryDirectoryName = 'repo'; const repositoryDirectoryName = 'repo';
@ -1645,7 +1645,7 @@ class RemoteBuilder {
}, },
]; ];
core.info('Starting part 1/4 (clone from github and restore cache)'); core.info('Starting part 1/4 (clone from github and restore cache)');
yield aws_build_environment_1.default.run(buildUid, buildParameters.awsStackName, 'alpine/git', [ yield aws_build_platform_1.default.runBuild(buildUid, buildParameters.awsStackName, 'alpine/git', [
'-c', '-c',
`apk update; `apk update;
apk add unzip; apk add unzip;
@ -1654,6 +1654,7 @@ class RemoteBuilder {
# Get source repo for project to be built and game-ci repo for utilties # Get source repo for project to be built and game-ci repo for utilties
git clone https://${buildParameters.githubToken}@github.com/${process.env.GITHUB_REPOSITORY}.git ${buildUid}/${repositoryDirectoryName} -q git clone https://${buildParameters.githubToken}@github.com/${process.env.GITHUB_REPOSITORY}.git ${buildUid}/${repositoryDirectoryName} -q
git clone https://${buildParameters.githubToken}@github.com/game-ci/unity-builder.git ${buildUid}/builder -q git clone https://${buildParameters.githubToken}@github.com/game-ci/unity-builder.git ${buildUid}/builder -q
git clone https://${buildParameters.githubToken}@github.com/game-ci/steam-deploy.git ${buildUid}/steam -q
cd /${efsDirectoryName}/${buildUid}/${repositoryDirectoryName}/ cd /${efsDirectoryName}/${buildUid}/${repositoryDirectoryName}/
git checkout $GITHUB_SHA git checkout $GITHUB_SHA
cd /${efsDirectoryName}/ cd /${efsDirectoryName}/
@ -1749,7 +1750,7 @@ class RemoteBuilder {
EnvironmentVariable: 'AWS_ACCESS_KEY_ALIAS_PASS', EnvironmentVariable: 'AWS_ACCESS_KEY_ALIAS_PASS',
ParameterValue: buildParameters.androidKeyaliasPass, ParameterValue: buildParameters.androidKeyaliasPass,
}); });
yield aws_build_environment_1.default.run(buildUid, buildParameters.awsStackName, baseImage.toString(), [ yield aws_build_platform_1.default.runBuild(buildUid, buildParameters.awsStackName, baseImage.toString(), [
'-c', '-c',
` `
cp -r /${efsDirectoryName}/${buildUid}/builder/dist/default-build-script/ /UnityBuilderAction; cp -r /${efsDirectoryName}/${buildUid}/builder/dist/default-build-script/ /UnityBuilderAction;
@ -1815,7 +1816,7 @@ class RemoteBuilder {
], buildSecrets); ], buildSecrets);
core.info('Starting part 3/4 (zip unity build and Library for caching)'); core.info('Starting part 3/4 (zip unity build and Library for caching)');
// Cleanup // Cleanup
yield aws_build_environment_1.default.run(buildUid, buildParameters.awsStackName, 'alpine', [ yield aws_build_platform_1.default.runBuild(buildUid, buildParameters.awsStackName, 'alpine', [
'-c', '-c',
` `
apk update apk update
@ -1834,7 +1835,7 @@ class RemoteBuilder {
}, },
], defaultSecretsArray); ], defaultSecretsArray);
core.info('Starting part 4/4 (upload build to s3)'); core.info('Starting part 4/4 (upload build to s3)');
yield aws_build_environment_1.default.run(buildUid, buildParameters.awsStackName, 'amazon/aws-cli', [ yield aws_build_platform_1.default.runBuild(buildUid, buildParameters.awsStackName, 'amazon/aws-cli', [
'-c', '-c',
` `
aws s3 cp ${buildUid}/build-${buildUid}.zip s3://game-ci-storage/ aws s3 cp ${buildUid}/build-${buildUid}.zip s3://game-ci-storage/
@ -1864,6 +1865,16 @@ class RemoteBuilder {
}, },
...defaultSecretsArray, ...defaultSecretsArray,
]); ]);
core.info('Starting steam deployment');
yield aws_build_platform_1.default.runBuild(buildUid, buildParameters.awsStackName, 'cm2network/steamcmd:root', [
'-c',
`
ls
chmod -R +x /entrypoint.sh;
chmod -R +x /steps;
/entrypoint.sh;
`,
], `/${efsDirectoryName}`, `/${efsDirectoryName}/${buildUid}/steam/action/`, [], []);
} }
catch (error) { catch (error) {
core.setFailed(error); core.setFailed(error);

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -9,7 +9,7 @@ import RemoteBuilderAlphabet from './remote-builder-alphabet';
import AWSBuildRunner from './aws-build-runner'; import AWSBuildRunner from './aws-build-runner';
class AWSBuildEnvironment { class AWSBuildEnvironment {
static async run( static async runBuild(
buildId: string, buildId: string,
stackName: string, stackName: string,
image: string, image: string,

View File

@ -1,5 +1,5 @@
import { customAlphabet } from 'nanoid'; import { customAlphabet } from 'nanoid';
import AWSBuildEnvironment from './aws-build-environment'; import AWSBuildPlatform from './aws-build-platform';
import * as core from '@actions/core'; import * as core from '@actions/core';
import RemoteBuilderAlphabet from './remote-builder-alphabet'; import RemoteBuilderAlphabet from './remote-builder-alphabet';
import { BuildParameters } from '..'; import { BuildParameters } from '..';
@ -25,7 +25,7 @@ class RemoteBuilder {
]; ];
core.info('Starting part 1/4 (clone from github and restore cache)'); core.info('Starting part 1/4 (clone from github and restore cache)');
await AWSBuildEnvironment.run( await AWSBuildPlatform.runBuild(
buildUid, buildUid,
buildParameters.awsStackName, buildParameters.awsStackName,
'alpine/git', 'alpine/git',
@ -38,6 +38,7 @@ class RemoteBuilder {
# Get source repo for project to be built and game-ci repo for utilties # Get source repo for project to be built and game-ci repo for utilties
git clone https://${buildParameters.githubToken}@github.com/${process.env.GITHUB_REPOSITORY}.git ${buildUid}/${repositoryDirectoryName} -q git clone https://${buildParameters.githubToken}@github.com/${process.env.GITHUB_REPOSITORY}.git ${buildUid}/${repositoryDirectoryName} -q
git clone https://${buildParameters.githubToken}@github.com/game-ci/unity-builder.git ${buildUid}/builder -q git clone https://${buildParameters.githubToken}@github.com/game-ci/unity-builder.git ${buildUid}/builder -q
git clone https://${buildParameters.githubToken}@github.com/game-ci/steam-deploy.git ${buildUid}/steam -q
cd /${efsDirectoryName}/${buildUid}/${repositoryDirectoryName}/ cd /${efsDirectoryName}/${buildUid}/${repositoryDirectoryName}/
git checkout $GITHUB_SHA git checkout $GITHUB_SHA
cd /${efsDirectoryName}/ cd /${efsDirectoryName}/
@ -149,7 +150,7 @@ class RemoteBuilder {
ParameterValue: buildParameters.androidKeyaliasPass, ParameterValue: buildParameters.androidKeyaliasPass,
}); });
await AWSBuildEnvironment.run( await AWSBuildPlatform.runBuild(
buildUid, buildUid,
buildParameters.awsStackName, buildParameters.awsStackName,
baseImage.toString(), baseImage.toString(),
@ -224,7 +225,7 @@ class RemoteBuilder {
); );
core.info('Starting part 3/4 (zip unity build and Library for caching)'); core.info('Starting part 3/4 (zip unity build and Library for caching)');
// Cleanup // Cleanup
await AWSBuildEnvironment.run( await AWSBuildPlatform.runBuild(
buildUid, buildUid,
buildParameters.awsStackName, buildParameters.awsStackName,
'alpine', 'alpine',
@ -253,7 +254,7 @@ class RemoteBuilder {
); );
core.info('Starting part 4/4 (upload build to s3)'); core.info('Starting part 4/4 (upload build to s3)');
await AWSBuildEnvironment.run( await AWSBuildPlatform.runBuild(
buildUid, buildUid,
buildParameters.awsStackName, buildParameters.awsStackName,
'amazon/aws-cli', 'amazon/aws-cli',
@ -292,6 +293,26 @@ class RemoteBuilder {
...defaultSecretsArray, ...defaultSecretsArray,
], ],
); );
core.info('Starting steam deployment');
await AWSBuildPlatform.runBuild(
buildUid,
buildParameters.awsStackName,
'cm2network/steamcmd:root',
[
'-c',
`
ls
chmod -R +x /entrypoint.sh;
chmod -R +x /steps;
/entrypoint.sh;
`,
],
`/${efsDirectoryName}`,
`/${efsDirectoryName}/${buildUid}/steam/action/`,
[],
[],
);
} catch (error) { } catch (error) {
core.setFailed(error); core.setFailed(error);
core.error(error); core.error(error);