import cli methods
parent
97358c6298
commit
df84273a78
|
|
@ -2571,9 +2571,9 @@ class Caching {
|
||||||
if (!fs_1.default.existsSync(cacheFolder)) {
|
if (!fs_1.default.existsSync(cacheFolder)) {
|
||||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${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 ${cacheFolder.replace(/\\/g, `/`)}`);
|
||||||
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, '..').replace(/\\/g, `/`)}`);
|
||||||
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).replace(/\\/g, `/`)}`);
|
||||||
process.chdir(path_1.default.resolve(sourceFolder, '..'));
|
process.chdir(path_1.default.resolve(sourceFolder, '..'));
|
||||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls`);
|
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls`);
|
||||||
if (cloud_runner_1.default.buildParameters.cloudRunnerIntegrationTests) {
|
if (cloud_runner_1.default.buildParameters.cloudRunnerIntegrationTests) {
|
||||||
|
|
@ -2586,9 +2586,9 @@ class Caching {
|
||||||
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
|
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(`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(`${cacheArtifactName}.zip`), 'cache zip exists');
|
||||||
console_1.assert(fs_1.default.existsSync(path_1.default.basename(sourceFolder)), 'source folder exists');
|
console_1.assert(fs_1.default.existsSync(path_1.default.basename(sourceFolder)), 'source folder exists');
|
||||||
if (cloud_runner_1.default.buildParameters.cachePushOverrideCommand) {
|
if (cloud_runner_1.default.buildParameters.cachePushOverrideCommand) {
|
||||||
|
|
@ -2621,7 +2621,7 @@ class Caching {
|
||||||
.replace(/\n/g, ``)
|
.replace(/\n/g, ``)
|
||||||
.replace('.zip', '');
|
.replace('.zip', '');
|
||||||
process.chdir(cacheFolder);
|
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;
|
const cacheSelection = cacheArtifactName !== `` && fs_1.default.existsSync(`${cacheArtifactName}.zip`) ? cacheArtifactName : latestInBranch;
|
||||||
yield cloud_runner_logger_1.default.log(`cache key ${cacheArtifactName} selection ${cacheSelection}`);
|
yield cloud_runner_logger_1.default.log(`cache key ${cacheArtifactName} selection ${cacheSelection}`);
|
||||||
// eslint-disable-next-line func-style
|
// 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)}`);
|
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(`cache item extracted to ${fullResultsFolder}`);
|
||||||
remote_client_logger_1.RemoteClientLogger.log(` `);
|
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(` `);
|
remote_client_logger_1.RemoteClientLogger.log(` `);
|
||||||
yield cloud_runner_system_1.CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
|
yield cloud_runner_system_1.CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
|
||||||
remote_client_logger_1.RemoteClientLogger.log(` `);
|
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}`);
|
CloudRunnerLogger.log(`${error}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async PushToCache(cacheFolder: string, sourceFolder: string, cacheArtifactName: string) {
|
public static async PushToCache(cacheFolder: string, sourceFolder: string, cacheArtifactName: string) {
|
||||||
cacheArtifactName = cacheArtifactName.replace(' ', '');
|
cacheArtifactName = cacheArtifactName.replace(' ', '');
|
||||||
const startPath = process.cwd();
|
const startPath = process.cwd();
|
||||||
|
|
@ -47,9 +48,9 @@ export class Caching {
|
||||||
if (!fs.existsSync(cacheFolder)) {
|
if (!fs.existsSync(cacheFolder)) {
|
||||||
await CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
|
await CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`);
|
||||||
}
|
}
|
||||||
await CloudRunnerSystem.Run(`ls ${cacheFolder}`);
|
await CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
|
||||||
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder, '..')}`);
|
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder, '..').replace(/\\/g, `/`)}`);
|
||||||
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder)}`);
|
await CloudRunnerSystem.Run(`ls ${path.resolve(sourceFolder).replace(/\\/g, `/`)}`);
|
||||||
process.chdir(path.resolve(sourceFolder, '..'));
|
process.chdir(path.resolve(sourceFolder, '..'));
|
||||||
await CloudRunnerSystem.Run(`ls`);
|
await CloudRunnerSystem.Run(`ls`);
|
||||||
|
|
||||||
|
|
@ -70,9 +71,9 @@ export class Caching {
|
||||||
return typeof arguments_[number] != 'undefined' ? arguments_[number] : match;
|
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(`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(`${cacheArtifactName}.zip`), 'cache zip exists');
|
||||||
assert(fs.existsSync(path.basename(sourceFolder)), 'source folder exists');
|
assert(fs.existsSync(path.basename(sourceFolder)), 'source folder exists');
|
||||||
if (CloudRunner.buildParameters.cachePushOverrideCommand) {
|
if (CloudRunner.buildParameters.cachePushOverrideCommand) {
|
||||||
|
|
@ -105,7 +106,7 @@ export class Caching {
|
||||||
.replace('.zip', '');
|
.replace('.zip', '');
|
||||||
|
|
||||||
process.chdir(cacheFolder);
|
process.chdir(cacheFolder);
|
||||||
await CloudRunnerSystem.Run(`ls ${cacheFolder}`);
|
await CloudRunnerSystem.Run(`ls ${cacheFolder.replace(/\\/g, `/`)}`);
|
||||||
|
|
||||||
const cacheSelection =
|
const cacheSelection =
|
||||||
cacheArtifactName !== `` && fs.existsSync(`${cacheArtifactName}.zip`) ? cacheArtifactName : latestInBranch;
|
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)}`);
|
await CloudRunnerSystem.Run(`unzip -q ${cacheSelection}.zip -d ${path.basename(resultsFolder)}`);
|
||||||
RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`);
|
RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`);
|
||||||
RemoteClientLogger.log(` `);
|
RemoteClientLogger.log(` `);
|
||||||
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder}`);
|
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder.replace(/\\/g, `/`)}`);
|
||||||
RemoteClientLogger.log(` `);
|
RemoteClientLogger.log(` `);
|
||||||
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
|
await CloudRunnerSystem.Run(`du -h ${fullResultsFolder}/resultsFolder`);
|
||||||
RemoteClientLogger.log(` `);
|
RemoteClientLogger.log(` `);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue