fix(post-build): guard cache pushes when Library/build missing or empty (local CI)
parent
0c57572a1c
commit
d8ad8f9a5a
|
@ -4538,8 +4538,44 @@ class RemoteClient {
|
|||
}
|
||||
static async remoteClientPostBuild() {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Running POST build tasks`);
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/Library`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute), `lib-${cloud_runner_1.default.buildParameters.buildGuid}`);
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/build`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute), `build-${cloud_runner_1.default.buildParameters.buildGuid}`);
|
||||
// Guard: only push Library cache if the folder exists and has contents
|
||||
try {
|
||||
const libraryFolderHost = cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute;
|
||||
if (node_fs_1.default.existsSync(libraryFolderHost)) {
|
||||
const libraryEntries = await node_fs_1.default.promises.readdir(libraryFolderHost).catch(() => []);
|
||||
if (libraryEntries.length > 0) {
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/Library`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.libraryFolderAbsolute), `lib-${cloud_runner_1.default.buildParameters.buildGuid}`);
|
||||
}
|
||||
else {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Skipping Library cache push (folder is empty)`);
|
||||
}
|
||||
}
|
||||
else {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Skipping Library cache push (folder missing)`);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
remote_client_logger_1.RemoteClientLogger.logWarning(`Library cache push skipped with error: ${error.message}`);
|
||||
}
|
||||
// Guard: only push Build cache if the folder exists and has contents
|
||||
try {
|
||||
const buildFolderHost = cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute;
|
||||
if (node_fs_1.default.existsSync(buildFolderHost)) {
|
||||
const buildEntries = await node_fs_1.default.promises.readdir(buildFolderHost).catch(() => []);
|
||||
if (buildEntries.length > 0) {
|
||||
await caching_1.Caching.PushToCache(cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(`${cloud_runner_folders_1.CloudRunnerFolders.cacheFolderForCacheKeyFull}/build`), cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.projectBuildFolderAbsolute), `build-${cloud_runner_1.default.buildParameters.buildGuid}`);
|
||||
}
|
||||
else {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Skipping Build cache push (folder is empty)`);
|
||||
}
|
||||
}
|
||||
else {
|
||||
remote_client_logger_1.RemoteClientLogger.log(`Skipping Build cache push (folder missing)`);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
remote_client_logger_1.RemoteClientLogger.logWarning(`Build cache push skipped with error: ${error.message}`);
|
||||
}
|
||||
if (!build_parameters_1.default.shouldUseRetainedWorkspaceMode(cloud_runner_1.default.buildParameters)) {
|
||||
await cloud_runner_system_1.CloudRunnerSystem.Run(`rm -r ${cloud_runner_folders_1.CloudRunnerFolders.ToLinuxFolder(cloud_runner_folders_1.CloudRunnerFolders.uniqueCloudRunnerJobFolderAbsolute)}`);
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue