import cli methods
parent
97358c6298
commit
df84273a78
|
|
@ -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(` `);
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
|
@ -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(` `);
|
||||
|
|
|
|||
Loading…
Reference in New Issue