pull/310/head
Frostebite 2021-12-26 18:10:23 +00:00
parent d493981964
commit e6327a37fc
3 changed files with 33 additions and 28 deletions

25
dist/index.js vendored
View File

@ -554,16 +554,15 @@ class SetupRemoteRepository {
fs_1.default.mkdirSync(cloud_runner_state_1.CloudRunnerState.repoPathFull); fs_1.default.mkdirSync(cloud_runner_state_1.CloudRunnerState.repoPathFull);
yield SetupRemoteRepository.cloneRepoWithoutLFSFiles(); yield SetupRemoteRepository.cloneRepoWithoutLFSFiles();
yield SetupRemoteRepository.createLFSHashFiles(); yield SetupRemoteRepository.createLFSHashFiles();
const LFS_ASSETS_HASH = fs_1.default.readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`, 'utf8');
yield SetupRemoteRepository.printLFSHashState(); yield SetupRemoteRepository.printLFSHashState();
const lfsCacheFolder = path_1.default.join(cloud_runner_state_1.CloudRunnerState.cacheFolderFull, `lfs`); const lfsCacheFolder = path_1.default.join(cloud_runner_state_1.CloudRunnerState.cacheFolderFull, `lfs`);
const libraryCacheFolder = path_1.default.join(cloud_runner_state_1.CloudRunnerState.cacheFolderFull, `lib`); const libraryCacheFolder = path_1.default.join(cloud_runner_state_1.CloudRunnerState.cacheFolderFull, `lib`);
yield remote_client_system_1.RemoteClientSystem.Run(`tree ${cloud_runner_state_1.CloudRunnerState.builderPathFull}`); yield remote_client_system_1.RemoteClientSystem.Run(`tree ${cloud_runner_state_1.CloudRunnerState.builderPathFull}`);
yield SetupRemoteRepository.libraryCaching(lfsCacheFolder, libraryCacheFolder); yield SetupRemoteRepository.libraryCaching(lfsCacheFolder, libraryCacheFolder);
yield SetupRemoteRepository.lfsCaching(lfsCacheFolder, LFS_ASSETS_HASH); yield SetupRemoteRepository.lfsCaching(lfsCacheFolder);
yield SetupRemoteRepository.printCacheState(lfsCacheFolder, libraryCacheFolder); yield SetupRemoteRepository.printCacheState(lfsCacheFolder, libraryCacheFolder);
yield SetupRemoteRepository.pullLatestLFS(); yield SetupRemoteRepository.pullLatestLFS();
yield SetupRemoteRepository.cacheLatestLFSFiles(LFS_ASSETS_HASH, lfsCacheFolder); yield SetupRemoteRepository.cacheLatestLFSFiles(lfsCacheFolder);
SetupRemoteRepository.handleCachePurging(); SetupRemoteRepository.handleCachePurging();
} }
catch (error) { catch (error) {
@ -608,14 +607,14 @@ class SetupRemoteRepository {
fs_1.default.rmdirSync(cloud_runner_state_1.CloudRunnerState.cacheFolder, { recursive: true }); fs_1.default.rmdirSync(cloud_runner_state_1.CloudRunnerState.cacheFolder, { recursive: true });
} }
} }
static cacheLatestLFSFiles(LFS_ASSETS_HASH, lfsCacheFolder) { static cacheLatestLFSFiles(lfsCacheFolder) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
process.chdir(`${cloud_runner_state_1.CloudRunnerState.lfsDirectory}/..`); process.chdir(`${cloud_runner_state_1.CloudRunnerState.lfsDirectory}/..`);
yield remote_client_system_1.RemoteClientSystem.Run(`zip -r "${LFS_ASSETS_HASH}.zip" "lfs"`); yield remote_client_system_1.RemoteClientSystem.Run(`zip -r "${SetupRemoteRepository.LFS_ASSETS_HASH}.zip" "lfs"`);
cloud_runner_logger_1.default.logRemoteCli(fs_1.default.existsSync(`${LFS_ASSETS_HASH}.zip`).toString()); cloud_runner_logger_1.default.logRemoteCli(fs_1.default.existsSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`).toString());
yield remote_client_system_1.RemoteClientSystem.Run(`tree`); yield remote_client_system_1.RemoteClientSystem.Run(`tree`);
fs_1.default.copyFileSync(`${LFS_ASSETS_HASH}.zip`, path_1.default.join(lfsCacheFolder, '/')); fs_1.default.copyFileSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`, path_1.default.join(lfsCacheFolder, '/'));
cloud_runner_logger_1.default.logRemoteCli(`copied ${LFS_ASSETS_HASH} to ${lfsCacheFolder}`); cloud_runner_logger_1.default.logRemoteCli(`copied ${SetupRemoteRepository.LFS_ASSETS_HASH} to ${lfsCacheFolder}`);
}); });
} }
static pullLatestLFS() { static pullLatestLFS() {
@ -625,15 +624,15 @@ class SetupRemoteRepository {
cloud_runner_logger_1.default.logRemoteCli(`pulled latest LFS files`); cloud_runner_logger_1.default.logRemoteCli(`pulled latest LFS files`);
}); });
} }
static lfsCaching(lfsCacheFolder, LFS_ASSETS_HASH) { static lfsCaching(lfsCacheFolder) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
cloud_runner_logger_1.default.logRemoteCli(` `); cloud_runner_logger_1.default.logRemoteCli(` `);
cloud_runner_logger_1.default.logRemoteCli(`LFS Caching`); cloud_runner_logger_1.default.logRemoteCli(`LFS Caching`);
process.chdir(lfsCacheFolder); process.chdir(lfsCacheFolder);
let latestLFSCacheFile; let latestLFSCacheFile;
if (fs_1.default.existsSync(`${LFS_ASSETS_HASH}.zip`)) { if (fs_1.default.existsSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`)) {
cloud_runner_logger_1.default.logRemoteCli(`Match found: using large file hash match ${LFS_ASSETS_HASH}.zip`); cloud_runner_logger_1.default.logRemoteCli(`Match found: using large file hash match ${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`);
latestLFSCacheFile = `${LFS_ASSETS_HASH}.zip`; latestLFSCacheFile = `${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`;
} }
else { else {
latestLFSCacheFile = yield remote_client_system_1.RemoteClientSystem.Run(`ls -t "${lfsCacheFolder}" | grep .zip$ | head -1`); latestLFSCacheFile = yield remote_client_system_1.RemoteClientSystem.Run(`ls -t "${lfsCacheFolder}" | grep .zip$ | head -1`);
@ -678,6 +677,8 @@ class SetupRemoteRepository {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
yield remote_client_system_1.RemoteClientSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`); yield remote_client_system_1.RemoteClientSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`);
yield remote_client_system_1.RemoteClientSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`); yield remote_client_system_1.RemoteClientSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`);
SetupRemoteRepository.LFS_ASSETS_HASH = fs_1.default.readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`, 'utf8');
cloud_runner_logger_1.default.logRemoteCli(SetupRemoteRepository.LFS_ASSETS_HASH);
}); });
} }
static cloneRepoWithoutLFSFiles() { static cloneRepoWithoutLFSFiles() {

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,7 @@ import { CloudRunnerState } from '../../cloud-runner/state/cloud-runner-state';
import { RemoteClientSystem } from './remote-client-system'; import { RemoteClientSystem } from './remote-client-system';
export class SetupRemoteRepository { export class SetupRemoteRepository {
static LFS_ASSETS_HASH;
public static async run() { public static async run() {
try { try {
fs.mkdirSync(CloudRunnerState.buildPathFull); fs.mkdirSync(CloudRunnerState.buildPathFull);
@ -12,20 +13,16 @@ export class SetupRemoteRepository {
await SetupRemoteRepository.cloneRepoWithoutLFSFiles(); await SetupRemoteRepository.cloneRepoWithoutLFSFiles();
await SetupRemoteRepository.createLFSHashFiles(); await SetupRemoteRepository.createLFSHashFiles();
const LFS_ASSETS_HASH = fs.readFileSync(
`${path.join(CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`,
'utf8',
);
await SetupRemoteRepository.printLFSHashState(); await SetupRemoteRepository.printLFSHashState();
const lfsCacheFolder = path.join(CloudRunnerState.cacheFolderFull, `lfs`); const lfsCacheFolder = path.join(CloudRunnerState.cacheFolderFull, `lfs`);
const libraryCacheFolder = path.join(CloudRunnerState.cacheFolderFull, `lib`); const libraryCacheFolder = path.join(CloudRunnerState.cacheFolderFull, `lib`);
await RemoteClientSystem.Run(`tree ${CloudRunnerState.builderPathFull}`); await RemoteClientSystem.Run(`tree ${CloudRunnerState.builderPathFull}`);
await SetupRemoteRepository.libraryCaching(lfsCacheFolder, libraryCacheFolder); await SetupRemoteRepository.libraryCaching(lfsCacheFolder, libraryCacheFolder);
await SetupRemoteRepository.lfsCaching(lfsCacheFolder, LFS_ASSETS_HASH); await SetupRemoteRepository.lfsCaching(lfsCacheFolder);
await SetupRemoteRepository.printCacheState(lfsCacheFolder, libraryCacheFolder); await SetupRemoteRepository.printCacheState(lfsCacheFolder, libraryCacheFolder);
await SetupRemoteRepository.pullLatestLFS(); await SetupRemoteRepository.pullLatestLFS();
await SetupRemoteRepository.cacheLatestLFSFiles(LFS_ASSETS_HASH, lfsCacheFolder); await SetupRemoteRepository.cacheLatestLFSFiles(lfsCacheFolder);
SetupRemoteRepository.handleCachePurging(); SetupRemoteRepository.handleCachePurging();
} catch (error) { } catch (error) {
throw error; throw error;
@ -72,13 +69,13 @@ export class SetupRemoteRepository {
} }
} }
private static async cacheLatestLFSFiles(LFS_ASSETS_HASH: string, lfsCacheFolder: string) { private static async cacheLatestLFSFiles(lfsCacheFolder: string) {
process.chdir(`${CloudRunnerState.lfsDirectory}/..`); process.chdir(`${CloudRunnerState.lfsDirectory}/..`);
await RemoteClientSystem.Run(`zip -r "${LFS_ASSETS_HASH}.zip" "lfs"`); await RemoteClientSystem.Run(`zip -r "${SetupRemoteRepository.LFS_ASSETS_HASH}.zip" "lfs"`);
CloudRunnerLogger.logRemoteCli(fs.existsSync(`${LFS_ASSETS_HASH}.zip`).toString()); CloudRunnerLogger.logRemoteCli(fs.existsSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`).toString());
await RemoteClientSystem.Run(`tree`); await RemoteClientSystem.Run(`tree`);
fs.copyFileSync(`${LFS_ASSETS_HASH}.zip`, path.join(lfsCacheFolder, '/')); fs.copyFileSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`, path.join(lfsCacheFolder, '/'));
CloudRunnerLogger.logRemoteCli(`copied ${LFS_ASSETS_HASH} to ${lfsCacheFolder}`); CloudRunnerLogger.logRemoteCli(`copied ${SetupRemoteRepository.LFS_ASSETS_HASH} to ${lfsCacheFolder}`);
} }
private static async pullLatestLFS() { private static async pullLatestLFS() {
@ -87,14 +84,16 @@ export class SetupRemoteRepository {
CloudRunnerLogger.logRemoteCli(`pulled latest LFS files`); CloudRunnerLogger.logRemoteCli(`pulled latest LFS files`);
} }
private static async lfsCaching(lfsCacheFolder: string, LFS_ASSETS_HASH: string) { private static async lfsCaching(lfsCacheFolder: string) {
CloudRunnerLogger.logRemoteCli(` `); CloudRunnerLogger.logRemoteCli(` `);
CloudRunnerLogger.logRemoteCli(`LFS Caching`); CloudRunnerLogger.logRemoteCli(`LFS Caching`);
process.chdir(lfsCacheFolder); process.chdir(lfsCacheFolder);
let latestLFSCacheFile; let latestLFSCacheFile;
if (fs.existsSync(`${LFS_ASSETS_HASH}.zip`)) { if (fs.existsSync(`${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`)) {
CloudRunnerLogger.logRemoteCli(`Match found: using large file hash match ${LFS_ASSETS_HASH}.zip`); CloudRunnerLogger.logRemoteCli(
latestLFSCacheFile = `${LFS_ASSETS_HASH}.zip`; `Match found: using large file hash match ${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`,
);
latestLFSCacheFile = `${SetupRemoteRepository.LFS_ASSETS_HASH}.zip`;
} else { } else {
latestLFSCacheFile = await RemoteClientSystem.Run(`ls -t "${lfsCacheFolder}" | grep .zip$ | head -1`); latestLFSCacheFile = await RemoteClientSystem.Run(`ls -t "${lfsCacheFolder}" | grep .zip$ | head -1`);
} }
@ -140,6 +139,11 @@ export class SetupRemoteRepository {
private static async createLFSHashFiles() { private static async createLFSHashFiles() {
await RemoteClientSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`); await RemoteClientSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`);
await RemoteClientSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`); await RemoteClientSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`);
SetupRemoteRepository.LFS_ASSETS_HASH = fs.readFileSync(
`${path.join(CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`,
'utf8',
);
CloudRunnerLogger.logRemoteCli(SetupRemoteRepository.LFS_ASSETS_HASH);
} }
private static async cloneRepoWithoutLFSFiles() { private static async cloneRepoWithoutLFSFiles() {