@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 97 lines 2.4 kB view raw
1<?php 2 3final class HarbormasterUploadArtifactBuildStepImplementation 4 extends HarbormasterBuildStepImplementation { 5 6 public function getName() { 7 return pht('Upload File'); 8 } 9 10 public function getGenericDescription() { 11 return pht('Upload a file.'); 12 } 13 14 public function getBuildStepGroupKey() { 15 return HarbormasterPrototypeBuildStepGroup::GROUPKEY; 16 } 17 18 public function getDescription() { 19 return pht( 20 'Upload %s from %s.', 21 $this->formatSettingForDescription('path'), 22 $this->formatSettingForDescription('hostartifact')); 23 } 24 25 public function execute( 26 HarbormasterBuild $build, 27 HarbormasterBuildTarget $build_target) { 28 $viewer = PhabricatorUser::getOmnipotentUser(); 29 30 $settings = $this->getSettings(); 31 $variables = $build_target->getVariables(); 32 33 $path = $this->mergeVariables( 34 'vsprintf', 35 $settings['path'], 36 $variables); 37 38 $artifact = $build_target->loadArtifact($settings['hostartifact']); 39 $impl = $artifact->getArtifactImplementation(); 40 $lease = $impl->loadArtifactLease($viewer); 41 42 $interface = $lease->getInterface('filesystem'); 43 44 // TODO: Handle exceptions. 45 $file = $interface->saveFile($path, $settings['name']); 46 47 // Insert the artifact record. 48 $artifact = $build_target->createArtifact( 49 $viewer, 50 $settings['name'], 51 HarbormasterFileArtifact::ARTIFACTCONST, 52 array( 53 'filePHID' => $file->getPHID(), 54 )); 55 } 56 57 public function getArtifactInputs() { 58 return array( 59 array( 60 'name' => pht('Upload From Host'), 61 'key' => $this->getSetting('hostartifact'), 62 'type' => HarbormasterHostArtifact::ARTIFACTCONST, 63 ), 64 ); 65 } 66 67 public function getArtifactOutputs() { 68 return array( 69 array( 70 'name' => pht('Uploaded File'), 71 'key' => $this->getSetting('name'), 72 'type' => HarbormasterHostArtifact::ARTIFACTCONST, 73 ), 74 ); 75 } 76 77 public function getFieldSpecifications() { 78 return array( 79 'path' => array( 80 'name' => pht('Path'), 81 'type' => 'text', 82 'required' => true, 83 ), 84 'name' => array( 85 'name' => pht('Local Name'), 86 'type' => 'text', 87 'required' => true, 88 ), 89 'hostartifact' => array( 90 'name' => pht('Host Artifact'), 91 'type' => 'text', 92 'required' => true, 93 ), 94 ); 95 } 96 97}