From 2855470b312a7664b77da47621d8ce0feb7e477d Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 4 Jan 2017 14:05:25 -0800 Subject: [PATCH] Show an info view warning for ongoing or failed builds in Differential Summary: Fixes T10136. This reinforces ongoing or failed builds in the comment action area. We already emit a similar message for unit test failures from `arc unit`. This should probably obsolete that, eventually. Test Plan: {F2304809} {F2304810} Reviewers: chad Reviewed By: chad Maniphest Tasks: T10136 Differential Revision: https://secure.phabricator.com/D17140 --- .../customfield/DifferentialUnitField.php | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/applications/differential/customfield/DifferentialUnitField.php b/src/applications/differential/customfield/DifferentialUnitField.php index c9b3998762..7b3d491cbd 100644 --- a/src/applications/differential/customfield/DifferentialUnitField.php +++ b/src/applications/differential/customfield/DifferentialUnitField.php @@ -32,9 +32,31 @@ final class DifferentialUnitField } public function getWarningsForDetailView() { - $status = $this->getObject()->getActiveDiff()->getUnitStatus(); - $warnings = array(); + + $viewer = $this->getViewer(); + $diff = $this->getObject()->getActiveDiff(); + + $buildable = id(new HarbormasterBuildableQuery()) + ->setViewer($viewer) + ->withBuildablePHIDs(array($diff->getPHID())) + ->withManualBuildables(false) + ->executeOne(); + if ($buildable) { + switch ($buildable->getBuildableStatus()) { + case HarbormasterBuildable::STATUS_BUILDING: + $warnings[] = pht( + 'These changes have not finished building yet and may have build '. + 'failures.'); + break; + case HarbormasterBuildable::STATUS_FAILED: + $warnings[] = pht( + 'These changes have failed to build.'); + break; + } + } + + $status = $this->getObject()->getActiveDiff()->getUnitStatus(); if ($status < DifferentialUnitStatus::UNIT_WARN) { // Don't show any warnings. } else if ($status == DifferentialUnitStatus::UNIT_AUTO_SKIP) {