diff options
-rw-r--r-- | src/buildtool/execution_api/local/local_action.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp index 3a2beb64..0c15e788 100644 --- a/src/buildtool/execution_api/local/local_action.cpp +++ b/src/buildtool/execution_api/local/local_action.cpp @@ -138,8 +138,14 @@ auto LocalAction::StageFile(std::filesystem::path const& target_path, auto blob_path = storage_->BlobPath(info.digest, IsExecutableObject(info.type)); - return blob_path and - FileSystemManager::CreateDirectory(target_path.parent_path()) and + if (not blob_path) { + logger_.Emit(LogLevel::Error, + "artifact with id {} is missing in CAS", + info.digest.hash()); + return false; + } + + return FileSystemManager::CreateDirectory(target_path.parent_path()) and FileSystemManager::CreateFileHardlink(*blob_path, target_path); } |