/**
  * Wrapper for creating a new build.
  *
  * @param Project $project
  * @param string $commitId
  * @param string $branch
  * @param string $committer
  * @param string $commitMessage
  * @param array $extra
  *
  * @return array
  *
  * @throws Exception
  */
 protected function createBuild(Project $project, $commitId, $branch, $committer, $commitMessage, array $extra = null)
 {
     // Check if a build already exists for this commit ID:
     $builds = $this->buildStore->getByProjectAndCommit($project->getId(), $commitId);
     if ($builds['count']) {
         return array('status' => 'ignored', 'message' => sprintf('Duplicate of build #%d', $builds['items'][0]->getId()));
     }
     // If not, create a new build job for it:
     $build = $this->buildService->createBuild($project, $commitId, $branch, $committer, $commitMessage, $extra);
     $build = BuildFactory::getBuild($build);
     // Send a status postback if the build type provides one:
     $build->sendStatusPostback();
     return array('status' => 'ok', 'buildID' => $build->getID());
 }
Example #2
0
 /**
  * Set Project - Accepts a Project model.
  * 
  * @param $value \PHPCI\Model\Project
  */
 public function setProjectObject(\PHPCI\Model\Project $value)
 {
     return $this->setProjectId($value->getId());
 }