Merge branch 'feature-improvements'
This commit is contained in:
commit
e4803f657a
11 changed files with 63 additions and 37 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ PHP Censor',
|
|||
'running' => 'Running',
|
||||
'success' => 'Success',
|
||||
'failed' => 'Failed',
|
||||
'failed_allowed' => 'Failed (Allowed)',
|
||||
'error' => 'Error',
|
||||
'skipped' => 'Skipped',
|
||||
'trace' => 'Stack trace',
|
||||
|
|
|
|||
|
|
@ -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' => '« Пред.',
|
||||
'next_link' => 'След. »',
|
||||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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() . ')';
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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() . ')';
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue