import cli methods

pull/353/head
Frostebite 2022-04-08 19:22:01 +01:00
parent 97358c6298
commit df84273a78
4 changed files with 75 additions and 15 deletions

14
dist/index.js vendored
View File

@ -2571,9 +2571,9 @@ class Caching {
if (!fs_1.default.existsSync(cacheFolder)) {
yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
}
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.resolve(sourceFolder, '..')}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.resolve(sourceFolder)}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.resolve(sourceFolder, '..').replace(/\\/g, `/`)}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.resolve(sourceFolder).replace(/\\/g, `/`)}`);
process.chdir(path_1.default.resolve(sourceFolder, '..'));
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls`);
if (cloud_runner_1.default.buildParameters.cloudRunnerIntegrationTests) {
@ -2586,9 +2586,9 @@ class Caching {
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
});
};
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${sourceFolder}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${sourceFolder.replace(/\\/g, `/`)}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`zip -q ${cacheArtifactName}.zip ${path_1.default.basename(sourceFolder)}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${sourceFolder}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${sourceFolder.replace(/\\/g, `/`)}`);
console_1.assert(fs_1.default.existsSync(`${cacheArtifactName}.zip`), 'cache zip exists');
console_1.assert(fs_1.default.existsSync(path_1.default.basename(sourceFolder)), 'source folder exists');
if (cloud_runner_1.default.buildParameters.cachePushOverrideCommand) {
@ -2621,7 +2621,7 @@ class Caching {
.replace(/\n/g, ``)
.replace('.zip', '');
process.chdir(cacheFolder);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
const cacheSelection = cacheArtifactName !== `` && fs_1.default.existsSync(`${cacheArtifactName}.zip`) ? cacheArtifactName : latestInBranch;
yield cloud_runner_logger_1.default.log(`cache key ${cacheArtifactName} selection ${cacheSelection}`);
// eslint-disable-next-line func-style
@ -2643,7 +2643,7 @@ class Caching {
yield cloud_runner_system_1.CloudRunnerSystem.Run(`unzip -q ${cacheSelection}.zip -d ${path_1.default.basename(resultsFolder)}`);
remote_client_logger_1.RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`);
remote_client_logger_1.RemoteClientLogger.log(` `);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`du -h ${fullResultsFolder}`);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`du -h ${fullResultsFolder.replace(/\\/g, `/`)}`);
remote_client_logger_1.RemoteClientLogger.log(` `);
yield cloud_runner_system_1.CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
remote_client_logger_1.RemoteClientLogger.log(` `);

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,59 @@
import fs from 'fs';
import path from 'path';
import BuildParameters from '../../build-parameters';
import { CLI } from '../../cli/cli';
import Input from '../../input';
import UnityVersioning from '../../unity-versioning';
import CloudRunner from '../cloud-runner';
import { Caching } from './caching';
function guid() {
return Math.trunc((1 + Math.random()) * 0x10000)
.toString(16)
.slice(1);
}
function guidGenerator() {
return `${guid() + guid()}-${guid()}-${guid()}-${guid()}-${guid()}${guid()}${guid()}`;
}
describe('Cloud Runner Caching', () => {
it('responds', () => {});
});
describe('Cloud Runner Caching', () => {
if (process.platform === 'linux') {
it('Simple caching works', async () => {
CLI.options = {
versioning: 'None',
projectPath: 'test-project',
unityVersion: UnityVersioning.read('test-project'),
targetPlatform: 'StandaloneLinux64',
cacheKey: `test-case-${guidGenerator()}`,
};
Input.githubInputEnabled = false;
const buildParameter = await BuildParameters.create();
CloudRunner.buildParameters = buildParameter;
// create test folder
const testFolder = path.resolve(__dirname, CLI.options.cacheKey);
fs.mkdirSync(testFolder);
// crate cache folder
const cacheFolder = path.resolve(__dirname, `cache-${CLI.options.cacheKey}`);
fs.mkdirSync(cacheFolder);
// add test has file to test folders
fs.writeFileSync(path.resolve(testFolder, 'test.txt'), CLI.options.cacheKey);
await Caching.PushToCache(cacheFolder, testFolder, `${CLI.options.cacheKey}.zip`);
// delete test folder
fs.rmdirSync(testFolder);
await Caching.PullFromCache(
cacheFolder.replace(/\\/g, `/`),
testFolder.replace(/\\/g, `/`),
`${CLI.options.cacheKey}.zip`,
);
// compare validity to original hash
expect(fs.readFileSync(path.resolve(testFolder, 'test.txt'))).toContain(CLI.options.cacheKey);
fs.rmdirSync(testFolder);
fs.rmdirSync(cacheFolder);
Input.githubInputEnabled = true;
delete CLI.options;
}, 1000000);
}
});

View File

@ -40,6 +40,7 @@ export class Caching {
CloudRunnerLogger.log(`${error}`);
}
}
public static async PushToCache(cacheFolder: string, sourceFolder: string, cacheArtifactName: string) {
cacheArtifactName = cacheArtifactName.replace(' ', '');
const startPath = process.cwd();
@ -47,9 +48,9 @@ export class Caching {
if (!fs.existsSync(cacheFolder)) {
await CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
}
await CloudRunnerSystem.Run(`ls ${cacheFolder}`);
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder, '..')}`);
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder)}`);
await CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder, '..').replace(/\\/g, `/`)}`);
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder).replace(/\\/g, `/`)}`);
process.chdir(path.resolve(sourceFolder, '..'));
await CloudRunnerSystem.Run(`ls`);
@ -70,9 +71,9 @@ export class Caching {
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
});
};
await CloudRunnerSystem.Run(`ls ${sourceFolder}`);
await CloudRunnerSystem.Run(`ls ${sourceFolder.replace(/\\/g, `/`)}`);
await CloudRunnerSystem.Run(`zip -q ${cacheArtifactName}.zip ${path.basename(sourceFolder)}`);
await CloudRunnerSystem.Run(`ls ${sourceFolder}`);
await CloudRunnerSystem.Run(`ls ${sourceFolder.replace(/\\/g, `/`)}`);
assert(fs.existsSync(`${cacheArtifactName}.zip`), 'cache zip exists');
assert(fs.existsSync(path.basename(sourceFolder)), 'source folder exists');
if (CloudRunner.buildParameters.cachePushOverrideCommand) {
@ -105,7 +106,7 @@ export class Caching {
.replace('.zip', '');
process.chdir(cacheFolder);
await CloudRunnerSystem.Run(`ls ${cacheFolder}`);
await CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
const cacheSelection =
cacheArtifactName !== `` && fs.existsSync(`${cacheArtifactName}.zip`) ? cacheArtifactName : latestInBranch;
@ -135,7 +136,7 @@ export class Caching {
await CloudRunnerSystem.Run(`unzip -q ${cacheSelection}.zip -d ${path.basename(resultsFolder)}`);
RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`);
RemoteClientLogger.log(` `);
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder}`);
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder.replace(/\\/g, `/`)}`);
RemoteClientLogger.log(` `);
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
RemoteClientLogger.log(` `);