private function buildPropertyList(HarbormasterBuildStep $step, PhabricatorCustomFieldList $field_list) { $viewer = $this->getViewer(); $view = id(new PHUIPropertyListView())->setUser($viewer); try { $implementation = $step->getStepImplementation(); } catch (Exception $ex) { $implementation = null; } if ($implementation) { $type = $implementation->getName(); } else { $type = phutil_tag('em', array(), pht('Invalid Implementation ("%s")!', $step->getClassName())); } $view->addProperty(pht('Step Type'), $type); $view->addProperty(pht('Created'), phabricator_datetime($step->getDateCreated(), $viewer)); $field_list->appendFieldsToPropertyList($step, $viewer, $view); $description = $step->getDescription(); if (strlen($description)) { $view->addSectionHeader(pht('Description'), PHUIPropertyListView::ICON_SUMMARY); $view->addTextContent(new PHUIRemarkupView($viewer, $description)); } return id(new PHUIObjectBoxView())->setHeaderText(pht('Properties'))->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->appendChild($view); }
public function getDependencies(HarbormasterBuildStep $build_step) { $dependencies = $build_step->getDetail('dependsOn', array()); $inputs = $build_step->getStepImplementation()->getArtifactInputs(); $inputs = ipull($inputs, null, 'key'); $artifacts = $this->getAvailableArtifacts($build_step->getBuildPlan(), $build_step, null); foreach ($artifacts as $key => $type) { if (!array_key_exists($key, $inputs)) { unset($artifacts[$key]); } } $artifact_steps = ipull($artifacts, 'step'); $artifact_steps = mpull($artifact_steps, 'getPHID'); $dependencies = array_merge($dependencies, $artifact_steps); return $dependencies; }