示例#1
0
 /**
  * Takes a generic build and returns a type-specific build model.
  * @param Build $base The build from which to get a more specific build type.
  * @return Build
  */
 public static function getBuild(Build $base)
 {
     switch ($base->getProject()->getType()) {
         case 'remote':
             $type = 'RemoteGitBuild';
             break;
         case 'local':
             $type = 'LocalBuild';
             break;
         case 'github':
             $type = 'GithubBuild';
             break;
         case 'bitbucket':
             $type = 'BitbucketBuild';
             break;
         case 'gitlab':
             $type = 'GitlabBuild';
             break;
         case 'hg':
             $type = 'MercurialBuild';
             break;
     }
     $type = '\\PHPCI\\Model\\Build\\' . $type;
     return new $type($base->getDataArray());
 }
示例#2
0
 /**
  * @param Build $copyFrom
  * @return \PHPCI\Model\Build
  */
 public function createDuplicateBuild(Build $copyFrom)
 {
     $data = $copyFrom->getDataArray();
     // Clean up unwanted properties from the original build:
     unset($data['id']);
     unset($data['status']);
     unset($data['log']);
     unset($data['started']);
     unset($data['finished']);
     $build = new Build();
     $build->setValues($data);
     $build->setCreated(new \DateTime());
     return $this->buildStore->save($build);
 }
示例#3
0
 /**
  * @param Build $copyFrom
  * @return \PHPCI\Model\Build
  */
 public function createDuplicateBuild(Build $copyFrom)
 {
     $data = $copyFrom->getDataArray();
     // Clean up unwanted properties from the original build:
     unset($data['id']);
     unset($data['status']);
     unset($data['log']);
     unset($data['started']);
     unset($data['finished']);
     $build = new Build();
     $build->setValues($data);
     $build->setCreated(new \DateTime());
     $build->setStatus(0);
     $build = $this->buildStore->save($build);
     $buildId = $build->getId();
     if (!empty($buildId)) {
         $build = BuildFactory::getBuild($build);
         $build->sendStatusPostback();
         $this->addBuildToQueue($build);
     }
     return $build;
 }