Build sources instead of 'Manual' word.

This commit is contained in:
Dmitry Khomutov 2017-04-13 22:00:29 +07:00
commit 145670acde
25 changed files with 266 additions and 109 deletions

View file

@ -7,6 +7,7 @@ use PHPCensor\Builder;
use PHPCensor\Helper\Bitbucket;
use PHPCensor\Helper\Diff;
use b8\Config;
use PHPCensor\Model\Build;
use PHPCensor\Model\BuildError;
/**
@ -47,17 +48,16 @@ class BitbucketBuild extends RemoteGitBuild
*/
public function sendStatusPostback()
{
if ('Manual' === $this->getCommitId()) {
if (Build::SOURCE_WEBHOOK !== $this->getSource()) {
return false;
}
$project = $this->getProject();
$project = $this->getProject();
if (empty($project)) {
return false;
}
$username = Config::getInstance()->get('php-censor.bitbucket.username');
$username = Config::getInstance()->get('php-censor.bitbucket.username');
$appPassword = Config::getInstance()->get('php-censor.bitbucket.app_password');
if (empty($username) || empty($appPassword) || empty($this->data['id'])) {
@ -261,18 +261,18 @@ class BitbucketBuild extends RemoteGitBuild
*/
protected function getDiffLineNumber(Builder $builder, $file, $line)
{
$line = (integer)$line;
$builder->logExecOutput(false);
$line = (integer)$line;
$prNumber = $this->getExtra('pull_request_number');
$path = $builder->buildPath;
$path = $builder->buildPath;
if (!empty($prNumber)) {
$builder->executeCommand('cd %s && git diff origin/%s "%s"', $path, $this->getBranch(), $file);
} else {
$commitId = $this->getCommitId();
$compare = $commitId == 'Manual' ? 'HEAD' : $commitId;
$compare = empty($commitId) ? 'HEAD' : $commitId;
$builder->executeCommand('cd %s && git diff %s^^ "%s"', $path, $compare, $file);
}
@ -281,7 +281,7 @@ class BitbucketBuild extends RemoteGitBuild
$diff = $builder->getLastOutput();
$helper = new Diff();
$lines = $helper->getLinePositions($diff);
$lines = $helper->getLinePositions($diff);
return isset($lines[$line]) ? $lines[$line] : null;
}

View file

@ -7,6 +7,7 @@ use PHPCensor\Builder;
use PHPCensor\Helper\Diff;
use PHPCensor\Helper\Github;
use b8\Config;
use PHPCensor\Model\Build;
use PHPCensor\Model\BuildError;
/**
@ -45,7 +46,7 @@ class GithubBuild extends RemoteGitBuild
*/
public function sendStatusPostback()
{
if ('Manual' === $this->getCommitId()) {
if (Build::SOURCE_WEBHOOK !== $this->getSource()) {
return false;
}
@ -246,18 +247,18 @@ class GithubBuild extends RemoteGitBuild
*/
protected function getDiffLineNumber(Builder $builder, $file, $line)
{
$line = (integer)$line;
$builder->logExecOutput(false);
$line = (integer)$line;
$prNumber = $this->getExtra('pull_request_number');
$path = $builder->buildPath;
$path = $builder->buildPath;
if (!empty($prNumber)) {
$builder->executeCommand('cd %s && git diff origin/%s "%s"', $path, $this->getBranch(), $file);
} else {
$commitId = $this->getCommitId();
$compare = $commitId == 'Manual' ? 'HEAD' : $commitId;
$compare = empty($commitId) ? 'HEAD' : $commitId;
$builder->executeCommand('cd %s && git diff %s^^ "%s"', $path, $compare, $file);
}
@ -266,7 +267,7 @@ class GithubBuild extends RemoteGitBuild
$diff = $builder->getLastOutput();
$helper = new Diff();
$lines = $helper->getLinePositions($diff);
$lines = $helper->getLinePositions($diff);
return isset($lines[$line]) ? $lines[$line] : null;
}

View file

@ -12,11 +12,7 @@ class GogsBuild extends RemoteGitBuild
*/
public function getCommitLink()
{
if ($this->getCommitId() !== 'manual'){
return $this->getProject()->getReference() . '/commit/' . $this->getCommitId();
}
return parent::getCommitLink();
return $this->getProject()->getReference() . '/commit/' . $this->getCommitId();
}
/**

View file

@ -35,6 +35,7 @@ class MercurialBuild extends Build
if (!$success) {
$builder->logFailure('Failed to clone remote hg repository.');
return false;
}
@ -84,12 +85,12 @@ class MercurialBuild extends Build
*/
protected function postCloneSetup(Builder $builder, $cloneTo, array $extra = null)
{
$success = true;
$commit = $this->getCommitId();
$success = true;
$commitId = $this->getCommitId();
// Allow switching to a specific branch:
if (!empty($commit) && $commit != 'Manual') {
$cmd = 'cd "%s" && hg checkout %s';
if (!empty($commitId)) {
$cmd = 'cd "%s" && hg checkout %s';
$success = $builder->executeCommand($cmd, $cloneTo, $this->getBranch());
}

View file

@ -137,18 +137,24 @@ class RemoteGitBuild extends Build
*/
protected function postCloneSetup(Builder $builder, $cloneTo, array $extra = null)
{
$success = true;
$commit = $this->getCommitId();
$chdir = 'cd "%s"';
$success = true;
$commitId = $this->getCommitId();
$chdir = 'cd "%s"';
if (empty($this->getEnvironment()) && !empty($commit) && $commit != 'Manual') {
$cmd = $chdir . ' && git checkout %s --quiet';
$success = $builder->executeCommand($cmd, $cloneTo, $commit);
if (empty($this->getEnvironment()) && !empty($commitId)) {
$cmd = $chdir . ' && git checkout %s --quiet';
$success = $builder->executeCommand($cmd, $cloneTo, $commitId);
}
// Always update the commit hash with the actual HEAD hash
if ($builder->executeCommand($chdir . ' && git rev-parse HEAD', $cloneTo)) {
$this->setCommitId(trim($builder->getLastOutput()));
$commitId = trim($builder->getLastOutput());
$this->setCommitId($commitId);
if ($builder->executeCommand($chdir . ' && git log -1 --pretty=format:%%s %s', $cloneTo, $commitId)) {
$this->setCommitMessage(trim($builder->getLastOutput()));
}
}
return $success;

View file

@ -95,7 +95,7 @@ class SubversionBuild extends Build
{
$cmd = $this->svnCommand;
if ($this->getCommitId() != 'Manual') {
if (!empty($this->getCommitId())) {
$cmd .= ' -r %s %s "%s"';
$success = $builder->executeCommand($cmd, $this->getCommitId(), $this->getCloneUrl(), $cloneTo);
} else {