Move shell scripts into remote-cli

pull/310/head
Frostebite 2021-12-19 23:46:04 +00:00
parent 6803240db7
commit b98c63baf5
8 changed files with 94 additions and 46 deletions

30
dist/index.js vendored
View File

@ -71,7 +71,6 @@ function runMain() {
}
function runCli() {
return __awaiter(this, void 0, void 0, function* () {
options.projectPath = 'test-project';
options.versioning = 'None';
model_1.Input.cliOptions = options;
const buildParameter = yield model_1.BuildParameters.create();
@ -79,11 +78,6 @@ function runCli() {
yield model_1.CloudRunner.run(buildParameter, baseImage.toString());
});
}
function runRemoteCli(options) {
return __awaiter(this, void 0, void 0, function* () {
yield remote_client_1.RemoteClientCli.RunRemoteClient(options);
});
}
const program = new commander_ts_1.Command();
program.version('0.0.1');
const properties = Object.getOwnPropertyNames(model_1.Input);
@ -98,7 +92,6 @@ core.info(`\r\n`);
program.option('-m, --mode <mode>', 'cli or default');
program.parse(process.argv);
const options = program.opts();
process.env.AWS_REGION = options.region;
// eslint-disable-next-line no-console
console.log(`Entrypoint: ${options.mode}`);
model_1.Input.githubEnabled = false;
@ -107,7 +100,7 @@ switch (options.mode) {
runCli();
break;
case 'remote-cli':
runRemoteCli(options);
remote_client_1.RemoteClientCli.RunRemoteClient(options);
break;
default:
model_1.Input.githubEnabled = true;
@ -531,6 +524,7 @@ const aws_build_runner_1 = __importDefault(__webpack_require__(29102));
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
const aws_job_stack_1 = __webpack_require__(85819);
const aws_base_stack_1 = __webpack_require__(28730);
const __1 = __webpack_require__(41359);
class AWSBuildEnvironment {
constructor(buildParameters) {
this.baseStackName = buildParameters.awsBaseStackName;
@ -559,6 +553,7 @@ class AWSBuildEnvironment {
}
runBuildTask(buildId, image, commands, mountdir, workingdir, environment, secrets) {
return __awaiter(this, void 0, void 0, function* () {
process.env.AWS_REGION = __1.Input.region;
const ECS = new SDK.ECS();
const CF = new SDK.CloudFormation();
cloud_runner_logger_1.default.log(`AWS Region: ${CF.config.region}`);
@ -2007,31 +2002,27 @@ class DownloadRepository {
return __awaiter(this, void 0, void 0, function* () {
yield new Promise((promise) => {
exec(`
tree -f -L 2tree -f -L 2
echo "test"
mkdir -p ${cloud_runner_state_1.CloudRunnerState.buildPathFull}
mkdir -p ${cloud_runner_state_1.CloudRunnerState.repoPathFull}
echo ' '
echo 'Initializing source repository for cloning with caching of LFS files'
repoPathFull=${cloud_runner_state_1.CloudRunnerState.repoPathFull}
cloneUrl=${cloud_runner_state_1.CloudRunnerState.targetBuildRepoUrl}
githubSha=$GITHUB_SHA
cd $repoPathFull
cd ${cloud_runner_state_1.CloudRunnerState.repoPathFull}
# stop annoying git detatched head info
git config --global advice.detachedHead false
echo ' '
echo "Cloning the repository being built:"
git lfs install --skip-smudge
git clone $cloneUrl $repoPathFull
echo "${cloud_runner_state_1.CloudRunnerState.targetBuildRepoUrl}"
git clone ${cloud_runner_state_1.CloudRunnerState.targetBuildRepoUrl} ${cloud_runner_state_1.CloudRunnerState.repoPathFull}
git checkout $githubSha
echo "Checked out $githubSha"
git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid
md5sum .lfs-assets-guid > .lfs-assets-guid-sum
export LFS_ASSETS_HASH="$(cat $repoPathFull/.lfs-assets-guid)"
export LFS_ASSETS_HASH="$(cat ${cloud_runner_state_1.CloudRunnerState.repoPathFull}/.lfs-assets-guid)"
echo ' '
echo 'Contents of .lfs-assets-guid file:'
@ -2177,7 +2168,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CloudRunnerState = void 0;
const image_environment_factory_1 = __importDefault(__webpack_require__(25145));
const cloud_runner_logger_1 = __importDefault(__webpack_require__(22855));
const cloud_runner_namespace_1 = __importDefault(__webpack_require__(63287));
class CloudRunnerState {
static setup(buildParameters) {
@ -2290,9 +2280,7 @@ class CloudRunnerState {
return `${CloudRunnerState.builderPathFull}/dist/cloud-runner/handleCaching.sh "${CloudRunnerState.cacheFolderFull}" "${CloudRunnerState.libraryFolderFull}" "${CloudRunnerState.lfsDirectory}" "${CloudRunnerState.purgeRemoteCaching}"`;
}
static get cloneBuilderCommand() {
const cloneCommand = `git clone -b ${CloudRunnerState.branchName} ${CloudRunnerState.unityBuilderRepoUrl} ${CloudRunnerState.builderPathFull}`;
cloud_runner_logger_1.default.log(cloneCommand);
return cloneCommand;
return `git clone -b ${CloudRunnerState.branchName} ${CloudRunnerState.unityBuilderRepoUrl} ${CloudRunnerState.builderPathFull}`;
}
static get runNumber() {
const runNumber = CloudRunnerState.buildParams.runNumber;

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -34,16 +34,12 @@ async function runMain() {
}
}
async function runCli() {
options.projectPath = 'test-project';
options.versioning = 'None';
Input.cliOptions = options;
const buildParameter = await BuildParameters.create();
const baseImage = new ImageTag(buildParameter);
await CloudRunner.run(buildParameter, baseImage.toString());
}
async function runRemoteCli(options) {
await RemoteClientCli.RunRemoteClient(options);
}
const program = new Command();
program.version('0.0.1');
@ -60,8 +56,6 @@ program.parse(process.argv);
const options = program.opts();
process.env.AWS_REGION = options.region;
// eslint-disable-next-line no-console
console.log(`Entrypoint: ${options.mode}`);
Input.githubEnabled = false;
@ -71,7 +65,7 @@ switch (options.mode) {
runCli();
break;
case 'remote-cli':
runRemoteCli(options);
RemoteClientCli.RunRemoteClient(options);
break;
default:
Input.githubEnabled = true;

View File

@ -8,6 +8,7 @@ import BuildParameters from '../../build-parameters';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import { AWSJobStack } from './aws-job-stack';
import { AWSBaseStack } from './aws-base-stack';
import { Input } from '../..';
class AWSBuildEnvironment implements CloudRunnerProviderInterface {
private baseStackName: string;
@ -45,9 +46,9 @@ class AWSBuildEnvironment implements CloudRunnerProviderInterface {
environment: CloudRunnerEnvironmentVariable[],
secrets: CloudRunnerSecret[],
): Promise<void> {
process.env.AWS_REGION = Input.region;
const ECS = new SDK.ECS();
const CF = new SDK.CloudFormation();
CloudRunnerLogger.log(`AWS Region: ${CF.config.region}`);
const entrypoint = ['/bin/sh'];
const t0 = Date.now();

View File

@ -0,0 +1,33 @@
import { BuildParameters, ImageTag } from '..';
import CloudRunner from './cloud-runner';
import Input from '../input';
describe('Cloud Runner', () => {
it('builds', async () => {
Input.cliOptions = {
versioning: 'None',
projectPath: 'test-project',
customBuildSteps: `
- name: 'step 1'
image: 'alpine'
commands: ['printenv']
secrets:
- name: 'testCustomSecret'
value: 'VALUEXXX'
`,
};
Input.githubEnabled = false;
const buildParameter = await BuildParameters.create();
const baseImage = new ImageTag(buildParameter);
await CloudRunner.run(buildParameter, baseImage.toString());
}, 500000);
});
if (process.env.GITHUB_SHA !== undefined) {
describe('Cloud Runner Remote', () => {
it('builds', async () => {
const buildParameter = await BuildParameters.create();
const baseImage = new ImageTag(buildParameter);
await CloudRunner.run(buildParameter, baseImage.toString());
});
});
}

View File

@ -7,31 +7,27 @@ export class DownloadRepository {
await new Promise<void>((promise) => {
exec(
`
tree -f -L 2tree -f -L 2
echo "test"
mkdir -p ${CloudRunnerState.buildPathFull}
mkdir -p ${CloudRunnerState.repoPathFull}
echo ' '
echo 'Initializing source repository for cloning with caching of LFS files'
repoPathFull=${CloudRunnerState.repoPathFull}
cloneUrl=${CloudRunnerState.targetBuildRepoUrl}
githubSha=$GITHUB_SHA
cd $repoPathFull
cd ${CloudRunnerState.repoPathFull}
# stop annoying git detatched head info
git config --global advice.detachedHead false
echo ' '
echo "Cloning the repository being built:"
git lfs install --skip-smudge
git clone $cloneUrl $repoPathFull
echo "${CloudRunnerState.targetBuildRepoUrl}"
git clone ${CloudRunnerState.targetBuildRepoUrl} ${CloudRunnerState.repoPathFull}
git checkout $githubSha
echo "Checked out $githubSha"
git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid
md5sum .lfs-assets-guid > .lfs-assets-guid-sum
export LFS_ASSETS_HASH="$(cat $repoPathFull/.lfs-assets-guid)"
export LFS_ASSETS_HASH="$(cat ${CloudRunnerState.repoPathFull}/.lfs-assets-guid)"
echo ' '
echo 'Contents of .lfs-assets-guid file:'

View File

@ -1,7 +1,6 @@
import { BuildParameters } from '../..';
import ImageEnvironmentFactory from '../../image-environment-factory';
import CloudRunnerEnvironmentVariable from '../services/cloud-runner-environment-variable';
import CloudRunnerLogger from '../services/cloud-runner-logger';
import CloudRunnerNamespace from '../services/cloud-runner-namespace';
import { CloudRunnerProviderInterface } from '../services/cloud-runner-provider-interface';
import CloudRunnerSecret from '../services/cloud-runner-secret';
@ -138,9 +137,7 @@ export class CloudRunnerState {
}
public static get cloneBuilderCommand() {
const cloneCommand = `git clone -b ${CloudRunnerState.branchName} ${CloudRunnerState.unityBuilderRepoUrl} ${CloudRunnerState.builderPathFull}`;
CloudRunnerLogger.log(cloneCommand);
return cloneCommand;
return `git clone -b ${CloudRunnerState.branchName} ${CloudRunnerState.unityBuilderRepoUrl} ${CloudRunnerState.builderPathFull}`;
}
public static get runNumber() {

View File

@ -1,8 +1,8 @@
Arguments:
C:\Program Files\nodejs\node.exe C:\Program Files (x86)\Yarn\bin\yarn.js
C:\Program Files\nodejs\node.exe C:\Program Files (x86)\Yarn\bin\yarn.js install
PATH:
C:\Users\Mark\AppData\Local\Temp\yarn--1631471515116-0.29510230599108156;C:\Users\Mark\Documents\GitHub\unity-builder\node_modules\.bin;C:\Users\Mark\AppData\Local\Yarn\Data\link\node_modules\.bin;C:\Program Files\libexec\lib\node_modules\npm\bin\node-gyp-bin;C:\Program Files\lib\node_modules\npm\bin\node-gyp-bin;C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin;C:\Users\Mark\AppData\Local\cloud-code\installer\google-cloud-sdk\bin;c:\Users\Mark\AppData\Roaming\Code\User\globalStorage\microsoft-isvexptools.powerplatform-vscode\pac\tools;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git LFS;C:\ProgramData\chocolatey\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Yarn\bin\;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Amazon\AWSCLIV2\;C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin;C:\Users\Mark\AppData\Local\Microsoft\PowerAppsCLI\;C:\Users\Mark\AppData\Local\Microsoft\WindowsApps;C:\Users\Mark\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Mark\AppData\Local\GitHubDesktop\bin;C:\Users\Mark\.dotnet\tools;C:\Users\Mark\AppData\Local\Yarn\bin;C:\Users\Mark\AppData\Roaming\npm;C:\Program Files (x86)\GitHub CLI\
C:\Users\Mark\AppData\Local\cloud-code\installer\google-cloud-sdk\bin;c:\Users\Mark\AppData\Roaming\Code\User\globalStorage\microsoft-isvexptools.powerplatform-vscode\pac\tools;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Git LFS;C:\ProgramData\chocolatey\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Yarn\bin\;C:\Program Files\nodejs\;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Program Files\Amazon\AWSCLIV2\;C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\bin;C:\Program Files\Git\cmd;C:\Users\Mark\scoop\shims;C:\Users\Mark\AppData\Local\Microsoft\PowerAppsCLI\;C:\Users\Mark\AppData\Local\Microsoft\WindowsApps;C:\Users\Mark\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Mark\AppData\Local\GitHubDesktop\bin;C:\Users\Mark\.dotnet\tools;C:\Users\Mark\AppData\Local\Yarn\bin;C:\Users\Mark\AppData\Roaming\npm;C:\Program Files (x86)\GitHub CLI\
Yarn version:
1.22.5
@ -30,7 +30,8 @@ npm manifest:
"build": "tsc && ncc build lib --source-map --license licenses.txt",
"lint": "prettier --check \"src/**/*.{js,ts}\" && eslint src/**/*.ts",
"format": "prettier --write \"src/**/*.{js,ts}\"",
"test": "jest"
"test": "jest",
"cli": "npx ts-node src/index.ts"
},
"dependencies": {
"@actions/core": "^1.2.6",
@ -40,7 +41,11 @@ npm manifest:
"async-wait-until": "^2.0.7",
"aws-sdk": "^2.812.0",
"base-64": "^1.0.0",
"commander": "^8.3.0",
"commander-ts": "^0.2.0",
"nanoid": "3.1.20",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.4.0",
"semver": "^7.3.2",
"yaml": "^1.10.2"
},
@ -1752,11 +1757,28 @@ Lockfile:
dependencies:
delayed-stream "~1.0.0"
commander-ts@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/commander-ts/-/commander-ts-0.2.0.tgz#14391337c1c725399cdfca5717da8e4fd0688eda"
integrity sha512-9XaUF3/3nmVtkDmAkijjhgEcwrMwKewaAJtN+GyTJBG3CJ5DfGB/JsXCVZcBW6SZB+QqiJxbK3e2/62tweMO8g==
dependencies:
commander "^7.2.0"
commander@^6.2.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
commander@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
compare-versions@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
@ -4704,6 +4726,11 @@ Lockfile:
dependencies:
resolve "^1.1.6"
reflect-metadata@^0.1.13:
version "0.1.13"
resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08"
integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@ -4890,6 +4917,13 @@ Lockfile:
dependencies:
tslib "^1.9.0"
rxjs@^7.4.0:
version "7.4.0"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.4.0.tgz#a12a44d7eebf016f5ff2441b87f28c9a51cebc68"
integrity sha512-7SQDi7xeTMCJpqViXh8gL/lebcwlp3d831F05+9B44A4B0WfsEwUQHR64gsH1kvJ+Ep/J9K2+n1hVl1CsGN23w==
dependencies:
tslib "~2.1.0"
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@ -5492,6 +5526,11 @@ Lockfile:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@~2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
tsutils@^3.17.1:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"