diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2023-08-24 11:43:05 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2023-08-24 12:29:21 +0200 |
commit | 7a503a1c875e4c9ac4b014036da77983af5272bc (patch) | |
tree | 32ae2f851ce87243b0c98781eb0591177168bb3d /src/buildtool/execution_api/remote/bazel/bazel_action.cpp | |
parent | ff62463cc2ead9c153305fbb7bbce3d18c90ddf9 (diff) | |
download | justbuild-7a503a1c875e4c9ac4b014036da77983af5272bc.tar.gz |
Execution: only take complete actions from cache
... which are only actions that, besides giving exit code 0 also
created all the outputs they promised to.
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_action.cpp')
-rw-r--r-- | src/buildtool/execution_api/remote/bazel/bazel_action.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp index 04d4c3f7..65dfd083 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp @@ -17,6 +17,7 @@ #include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/remote/bazel/bazel_response.hpp" +#include "src/buildtool/execution_api/utils/outputscheck.hpp" BazelAction::BazelAction( std::shared_ptr<BazelNetwork> network, @@ -57,7 +58,11 @@ auto BazelAction::Execute(Logger const* logger) noexcept if (do_cache) { if (auto result = network_->GetCachedActionResult(action, output_files_)) { - if (result->exit_code() == 0) { + if (result->exit_code() == 0 and + ActionResultContainsExpectedOutputs( + *result, output_files_, output_dirs_) + + ) { return IExecutionResponse::Ptr{new BazelResponse{ action.hash(), network_, {*result, true}}}; } |