Merge branch 'feature-improvements'

This commit is contained in:
Dmitry Khomutov 2017-04-03 21:24:38 +07:00
commit e4803f657a
No known key found for this signature in database
GPG key ID: 7EB36C9576F9ECB9
11 changed files with 63 additions and 37 deletions

View file

@ -3,8 +3,8 @@ var SummaryPlugin = ActiveBuild.UiPlugin.extend({
css: 'col-xs-12',
title: Lang.get('build-summary'),
box: true,
statusLabels: [ Lang.get('pending'), Lang.get('running'), Lang.get('success'), Lang.get('failed') ],
statusClasses: ['info', 'warning', 'success', 'danger'],
statusLabels: [Lang.get('pending'), Lang.get('running'), Lang.get('success'), Lang.get('failed'), Lang.get('failed_allowed')],
statusClasses: ['info', 'warning', 'success', 'danger', 'danger'],
register: function() {
var self = this;

View file

@ -15,8 +15,6 @@ use Psr\Log\LogLevel;
use PHPCensor\Plugin\Util\Factory as PluginFactory;
/**
* PHPCI Build Runner
*
* @author Dan Cryer <dan@block8.co.uk>
*/
class Builder implements LoggerAwareInterface
@ -119,7 +117,7 @@ class Builder implements LoggerAwareInterface
$this->verbose
);
$this->interpolator = new BuildInterpolator();
$this->interpolator = new BuildInterpolator();
$this->buildErrorWriter = new BuildErrorWriter($this->build->getId());
}

View file

@ -83,6 +83,7 @@ PHP Censor',
'running' => 'Running',
'success' => 'Success',
'failed' => 'Failed',
'failed_allowed' => 'Failed (Allowed)',
'error' => 'Error',
'skipped' => 'Skipped',
'trace' => 'Stack trace',

View file

@ -46,6 +46,7 @@ PHP Censor',
'branch_x' => 'Ветка: %s',
'created_x' => 'Создан: %s',
'started_x' => 'Запущен: %s',
'environment_x' => 'Окружение: %s',
// Sidebar
'hello_name' => 'Привет, %s',
@ -80,6 +81,7 @@ PHP Censor',
'running' => 'Запущена',
'success' => 'Успешно',
'failed' => 'Провал',
'failed_allowed' => 'Провал (Допустим)',
'error' => 'Ошибка',
'skipped' => 'Пропущено',
'trace' => 'Стек вызова',
@ -114,6 +116,7 @@ PHP Censor',
'archived' => 'Архивный',
'archived_menu' => 'Архив',
'save_project' => 'Сохранить проект',
'environments_label' => 'Окружения (yaml)',
'error_mercurial' => 'URL репозитория Mercurial должен начинаться с http:// или https://',
'error_remote' => 'URL репозитория должен начинаться с git://, http:// или https://',
@ -124,12 +127,14 @@ PHP Censor',
// View Project:
'all_branches' => 'Все ветки',
'all' => 'Все',
'builds' => 'Сборки',
'id' => 'ID',
'date' => 'Дата',
'project' => 'Проект',
'commit' => 'Коммит',
'branch' => 'Ветка',
'environment' => 'Окружение',
'status' => 'Статус',
'prev_link' => '&laquo; Пред.',
'next_link' => 'След. &raquo;',
@ -186,6 +191,7 @@ PHP Censor',
'phpcpd_warnings' => 'Предупреждения PHP Copy/Paste Detector',
'phpdoccheck_warnings' => 'Пропущенные Docblocks',
'issues' => 'Проблемы',
'merged_branches' => 'Объеденяемые ветки',
'phpcpd' => 'PHP Copy/Paste Detector',
'phpcs' => 'PHP Code Sniffer',

View file

@ -3,7 +3,6 @@
namespace PHPCensor\Model;
use PHPCensor\Builder;
use PHPCensor\Store\BuildErrorWriter;
use Symfony\Component\Yaml\Parser as YamlParser;
use PHPCensor\Model;
use b8\Store\Factory;
@ -21,6 +20,11 @@ class Build extends Model
const STAGE_FAILURE = 'failure';
const STAGE_FIXED = 'fixed';
const STAGE_BROKEN = 'broken';
const STATUS_PENDING = 0;
const STATUS_RUNNING = 1;
const STATUS_SUCCESS = 2;
const STATUS_FAILED = 3;
/**
* @var array
@ -669,11 +673,6 @@ class Build extends Model
return Factory::getStore('BuildMeta', 'PHPCensor')->getByBuildId($this->getId());
}
const STATUS_PENDING = 0;
const STATUS_RUNNING = 1;
const STATUS_SUCCESS = 2;
const STATUS_FAILED = 3;
public $currentBuildPath;
/**

View file

@ -11,6 +11,11 @@ use PHPCensor\Model\Build;
*/
abstract class Plugin
{
const STATUS_PENDING = 0;
const STATUS_RUNNING = 1;
const STATUS_SUCCESS = 2;
const STATUS_FAILED = 3;
const STATUS_FAILED_ALLOWED = 4;
/**
* @var \PHPCensor\Builder
*/

View file

@ -7,6 +7,7 @@ use Exception;
use PHPCensor\Helper\Lang;
use PHPCensor\Logging\BuildLogger;
use PHPCensor\Model\Build;
use PHPCensor\Plugin;
use PHPCensor\Store\BuildStore;
/**
@ -138,16 +139,15 @@ class Executor
'Stage' . ': ' . ucfirst($stage) . ')'
);
$this->setPluginStatus($stage, $plugin, Build::STATUS_RUNNING);
$this->setPluginStatus($stage, $plugin, Plugin::STATUS_RUNNING);
// Try and execute it
if ($this->executePlugin($plugin, $options)) {
// Execution was successful
$this->logger->logSuccess('PLUGIN: SUCCESS');
$this->setPluginStatus($stage, $plugin, Build::STATUS_SUCCESS);
$this->setPluginStatus($stage, $plugin, Plugin::STATUS_SUCCESS);
} else {
// Execution failed
$this->setPluginStatus($stage, $plugin, Build::STATUS_FAILED);
$status = Plugin::STATUS_FAILED;
if ($stage === Build::STAGE_SETUP) {
$this->logger->logFailure('PLUGIN: FAILED');
@ -164,9 +164,13 @@ class Executor
$this->logger->logFailure('PLUGIN: FAILED');
$success = false;
} else {
$status = Plugin::STATUS_FAILED_ALLOWED;
$this->logger->logFailure('PLUGIN: FAILED (ALLOWED)');
}
}
$this->setPluginStatus($stage, $plugin, $status);
}
}
@ -220,9 +224,9 @@ class Executor
$summary[$stage][$plugin]['status'] = $status;
if ($status === Build::STATUS_RUNNING) {
if ($status === Plugin::STATUS_RUNNING) {
$summary[$stage][$plugin]['started'] = time();
} elseif ($status >= Build::STATUS_SUCCESS) {
} elseif ($status >= Plugin::STATUS_SUCCESS) {
$summary[$stage][$plugin]['ended'] = time();
}

View file

@ -56,7 +56,7 @@ class BuildService
$build = new Build();
$build->setCreated(new \DateTime());
$build->setProject($project);
$build->setStatus(0);
$build->setStatus(Build::STATUS_PENDING);
$build->setEnvironment($environment);
$branches = $project->getBranchesByEnvironment($environment);
@ -118,8 +118,9 @@ class BuildService
$build = new Build();
$build->setValues($data);
$build->setCreated(new \DateTime());
$build->setStatus(0);
$build->setStatus(Build::STATUS_PENDING);
/** @var Build $build */
$build = $this->buildStore->save($build);
$buildId = $build->getId();

View file

@ -20,6 +20,7 @@ class BuildErrorWriter
/**
* BuildErrorWriter constructor.
*
* @param int $build_id
* @param int $buffer_size
*/
@ -39,12 +40,13 @@ class BuildErrorWriter
/**
* Write error
* @param string $plugin
* @param string $message
* @param int $severity
* @param string $file
* @param int $line_start
* @param int $line_end
*
* @param string $plugin
* @param string $message
* @param int $severity
* @param string $file
* @param int $line_start
* @param int $line_end
* @param \DateTime $created_date
*/
public function write($plugin, $message, $severity, $file = null, $line_start = null, $line_end = null, $created_date = null)

View file

@ -1,4 +1,9 @@
<?php use PHPCensor\Helper\Lang; ?>
<?php
use PHPCensor\Helper\Lang;
use PHPCensor\Model\Build;
?>
<ul class="timeline">
<?php $last = new \DateTime('-1 Year'); ?>
@ -8,25 +13,25 @@
$branches = $build->getExtra('branches');
switch ($build->getStatus()) {
case \PHPCensor\Model\Build::STATUS_PENDING:
case Build::STATUS_PENDING:
$updated = $build->getCreated();
$label = Lang::get('pending');
$color = 'blue';
break;
case \PHPCensor\Model\Build::STATUS_RUNNING:
case Build::STATUS_RUNNING:
$updated = $build->getStarted();
$label = Lang::get('running');
$color = 'yellow';
break;
case \PHPCensor\Model\Build::STATUS_SUCCESS:
case Build::STATUS_SUCCESS:
$updated = $build->getFinished();
$label = Lang::get('success');
$color = 'green';
break;
case \PHPCensor\Model\Build::STATUS_FAILED:
case Build::STATUS_FAILED:
$updated = $build->getFinished();
$label = Lang::get('failed');
$color = 'red';
@ -54,7 +59,7 @@
<span class="time"><i class="fa fa-clock-o"></i>
<?php
echo $updated->format('H:i:s');
if ($build->getStatus() != \PHPCensor\Model\Build::STATUS_PENDING) {
if ($build->getStatus() != Build::STATUS_PENDING) {
echo ' (' . $build->getPrettyDuration() . ')';
}
?>

View file

@ -1,4 +1,9 @@
<?php use PHPCensor\Helper\Lang; ?>
<?php
use PHPCensor\Helper\Lang;
use PHPCensor\Model\Build;
?>
<script>
var DASHBOARD = true;
</script>
@ -34,25 +39,25 @@
$branches = $build->getExtra('branches');
switch ($build->getStatus()) {
case \PHPCensor\Model\Build::STATUS_PENDING:
case Build::STATUS_PENDING:
$updated = $build->getCreated();
$label = Lang::get('pending');
$color = 'blue';
break;
case \PHPCensor\Model\Build::STATUS_RUNNING:
case Build::STATUS_RUNNING:
$updated = $build->getStarted();
$label = Lang::get('running');
$color = 'yellow';
break;
case \PHPCensor\Model\Build::STATUS_SUCCESS:
case Build::STATUS_SUCCESS:
$updated = $build->getFinished();
$label = Lang::get('success');
$color = 'green';
break;
case \PHPCensor\Model\Build::STATUS_FAILED:
case Build::STATUS_FAILED:
$updated = $build->getFinished();
$label = Lang::get('failed');
$color = 'red';
@ -80,7 +85,7 @@
<span class="time"><i class="fa fa-clock-o"></i>
<?php
echo $updated->format('H:i:s');
if ($build->getStatus() != \PHPCensor\Model\Build::STATUS_PENDING) {
if ($build->getStatus() != Build::STATUS_PENDING) {
echo ' (' . $build->getPrettyDuration() . ')';
}
?>