Ejemplo n.º 1
0
 /**
  * @param Project $project
  * @param string|null $commitId
  * @param string|null $branch
  * @param string|null $committerEmail
  * @param string|null $commitMessage
  * @param string|null $extra
  * @return \PHPCI\Model\Build
  */
 public function createBuild(Project $project, $commitId = null, $branch = null, $committerEmail = null, $commitMessage = null, $extra = null)
 {
     $build = new Build();
     $build->setCreated(new \DateTime());
     $build->setProject($project);
     $build->setStatus(0);
     if (!is_null($commitId)) {
         $build->setCommitId($commitId);
     } else {
         $build->setCommitId('Manual');
         $build->setCommitMessage(Lang::get('manual_build'));
     }
     if (!is_null($branch)) {
         $build->setBranch($branch);
     } else {
         $build->setBranch($project->getBranch());
     }
     if (!is_null($committerEmail)) {
         $build->setCommitterEmail($committerEmail);
     }
     if (!is_null($commitMessage)) {
         $build->setCommitMessage($commitMessage);
     }
     if (!is_null($extra)) {
         $build->setExtra(json_encode($extra));
     }
     return $this->buildStore->save($build);
 }
Ejemplo n.º 2
0
 /**
  * @covers PHPUnit::execute
  */
 public function testExecute_TestBuildExtra()
 {
     $info = array('item1' => 'Item One', 'item2' => 2);
     $build = new Build();
     $build->setExtra(json_encode($info));
     $this->assertEquals('Item One', $build->getExtra('item1'));
     $this->assertEquals(2, $build->getExtra('item2'));
     $this->assertNull($build->getExtra('item3'));
     $this->assertEquals($info, $build->getExtra());
 }
Ejemplo n.º 3
0
 /**
  * @covers PHPUnit::execute
  */
 public function testExecute_CreateDuplicateBuild()
 {
     $build = new Build();
     $build->setId(1);
     $build->setProject(101);
     $build->setCommitId('abcde');
     $build->setStatus(Build::STATUS_FAILED);
     $build->setLog('Test');
     $build->setBranch('example_branch');
     $build->setStarted(new \DateTime());
     $build->setFinished(new \DateTime());
     $build->setCommitMessage('test');
     $build->setCommitterEmail('*****@*****.**');
     $build->setExtra(json_encode(array('item1' => 1001)));
     $returnValue = $this->testedService->createDuplicateBuild($build);
     $this->assertNotEquals($build->getId(), $returnValue->getId());
     $this->assertEquals($build->getProjectId(), $returnValue->getProjectId());
     $this->assertEquals($build->getCommitId(), $returnValue->getCommitId());
     $this->assertNotEquals($build->getStatus(), $returnValue->getStatus());
     $this->assertEquals(Build::STATUS_NEW, $returnValue->getStatus());
     $this->assertNull($returnValue->getLog());
     $this->assertEquals($build->getBranch(), $returnValue->getBranch());
     $this->assertNotEquals($build->getCreated(), $returnValue->getCreated());
     $this->assertNull($returnValue->getStarted());
     $this->assertNull($returnValue->getFinished());
     $this->assertEquals('test', $returnValue->getCommitMessage());
     $this->assertEquals('*****@*****.**', $returnValue->getCommitterEmail());
     $this->assertEquals($build->getExtra('item1'), $returnValue->getExtra('item1'));
 }
Ejemplo n.º 4
0
 protected function createBuild($projectId, $commitId, $branch, $committer, $commitMessage, $extra = null)
 {
     // Check if a build already exists for this commit ID:
     $builds = $this->buildStore->getByProjectAndCommit($projectId, $commitId);
     if ($builds['count']) {
         return true;
     }
     // If not, create a new build job for it:
     $build = new Build();
     $build->setProjectId($projectId);
     $build->setCommitId($commitId);
     $build->setStatus(Build::STATUS_NEW);
     $build->setLog('');
     $build->setCreated(new \DateTime());
     $build->setBranch($branch);
     $build->setCommitterEmail($committer);
     $build->setCommitMessage($commitMessage);
     if (!is_null($extra)) {
         $build->setExtra(json_encode($extra));
     }
     $build = BuildFactory::getBuild($this->buildStore->save($build));
     // Send a status postback if the build type provides one:
     $build->sendStatusPostback();
     return true;
 }
Ejemplo n.º 5
0
 /**
  * Create a build using an existing build as a template:
  */
 public function rebuild($buildId)
 {
     $copy = BuildFactory::getBuildById($buildId);
     if (empty($copy)) {
         throw new NotFoundException('Build with ID: ' . $buildId . ' does not exist.');
     }
     $build = new Build();
     $build->setProjectId($copy->getProjectId());
     $build->setCommitId($copy->getCommitId());
     $build->setStatus(Build::STATUS_NEW);
     $build->setBranch($copy->getBranch());
     $build->setCreated(new \DateTime());
     $build->setCommitterEmail($copy->getCommitterEmail());
     $build->setCommitMessage($copy->getCommitMessage());
     $build->setExtra(json_encode($copy->getExtra()));
     $build = $this->buildStore->save($build);
     header('Location: ' . PHPCI_URL . 'build/view/' . $build->getId());
     exit;
 }