diff options
| author | Martin Ridgers <[email protected]> | 2021-11-16 14:41:55 +0100 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2021-11-16 14:41:55 +0100 |
| commit | 2f45b5f9389d18c795a83f7c08a2e3999940e4d8 (patch) | |
| tree | 35f771b5d9693ebf880ed68ab3db721321d1c9de /zenserver/upstream/upstreamapply.cpp | |
| parent | Changed SpawnServer() over to use zen::CreateProc() (diff) | |
| parent | Merge branch 'main' of https://github.com/EpicGames/zen (diff) | |
| download | zen-2f45b5f9389d18c795a83f7c08a2e3999940e4d8.tar.xz zen-2f45b5f9389d18c795a83f7c08a2e3999940e4d8.zip | |
Merged main
Diffstat (limited to 'zenserver/upstream/upstreamapply.cpp')
| -rw-r--r-- | zenserver/upstream/upstreamapply.cpp | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/zenserver/upstream/upstreamapply.cpp b/zenserver/upstream/upstreamapply.cpp index 3c67779c4..f32b08959 100644 --- a/zenserver/upstream/upstreamapply.cpp +++ b/zenserver/upstream/upstreamapply.cpp @@ -282,6 +282,28 @@ namespace detail { Exception = 6, }; + std::string_view ComputeTaskOutcomeToString(const ComputeTaskOutcome Outcome) + { + switch (Outcome) + { + case ComputeTaskOutcome::Success: + return "Success"sv; + case ComputeTaskOutcome::Failed: + return "Failed"sv; + case ComputeTaskOutcome::Cancelled: + return "Cancelled"sv; + case ComputeTaskOutcome::NoResult: + return "NoResult"sv; + case ComputeTaskOutcome::Exipred: + return "Exipred"sv; + case ComputeTaskOutcome::BlobNotFound: + return "BlobNotFound"sv; + case ComputeTaskOutcome::Exception: + return "Exception"sv; + }; + return "Unknown"sv; + } + virtual GetUpstreamApplyUpdatesResult GetUpdates() override { int64_t Bytes{}; @@ -413,8 +435,14 @@ namespace detail { if (Outcome != ComputeTaskOutcome::Success) { + using namespace fmt::literals; const std::string_view Detail = TaskStatus["d"sv].AsString(); - return {.Error{.ErrorCode = -1, .Reason = std::string(Detail)}}; + if (!Detail.empty()) + { + return {.Error{.ErrorCode = -1, + .Reason = "Task {}: {}"_format(ComputeTaskOutcomeToString(Outcome), std::string(Detail))}}; + } + return {.Error{.ErrorCode = -1, .Reason = "Task {}"_format(ComputeTaskOutcomeToString(Outcome))}}; } const IoHash TaskId = TaskStatus["h"sv].AsObjectAttachment(); @@ -770,17 +798,23 @@ namespace detail { const IoHash SandboxHash = Sandbox.GetHash(); Data.Objects[SandboxHash] = std::move(Sandbox); - CbObject Requirements = BuildRequirements("OSFamily == 'Windows'"sv, {}, false); - const IoHash RequirementsId = Requirements.GetHash(); - Data.Objects[RequirementsId] = std::move(Requirements); - Data.RequirementsId = RequirementsId; + { + using namespace fmt::literals; + std::string_view HostPlatform = ApplyRecord.WorkerDescriptor["host"sv].AsString(); + // TODO: Enable when Horde accepts the UE style Host Platforms (Win64, Linux, Mac) + //CbObject Requirements = BuildRequirements("OSFamily == '{}'"_format(HostPlatform), {}, false); + CbObject Requirements = BuildRequirements("OSFamily == 'Windows'", {}, false); + const IoHash RequirementsId = Requirements.GetHash(); + Data.Objects[RequirementsId] = std::move(Requirements); + Data.RequirementsId = RequirementsId; + } CbObject Task = BuildTask(ExecutablePath, {"-Build=build.action"}, Environment, {}, SandboxHash, - RequirementsId, + Data.RequirementsId, {"Build.output", "Outputs"}); const IoHash TaskId = Task.GetHash(); |