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() {
|
static async remoteClientPostBuild() {
|
||||||
remote_client_logger_1.RemoteClientLogger.log(`Running POST build tasks`);
|
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}`);
|
// Guard: only push Library cache if the folder exists and has contents
|
||||||
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}`);
|
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)) {
|
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)}`);
|
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