Giving plugins an isAllowedInStage() method to protect them from being run at inappropriate times.
Fixes #1122 Fixes #1090
This commit is contained in:
parent
b24b01ec65
commit
9dcb29af5d
|
@ -15,5 +15,6 @@ namespace PHPCI;
|
||||||
*/
|
*/
|
||||||
interface Plugin
|
interface Plugin
|
||||||
{
|
{
|
||||||
|
public function isAllowedInStage($stage);
|
||||||
public function execute();
|
public function execute();
|
||||||
}
|
}
|
||||||
|
|
31
PHPCI/Plugin/AbstractPlugin.php
Normal file
31
PHPCI/Plugin/AbstractPlugin.php
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace PHPCI\Plugin;
|
||||||
|
|
||||||
|
use PHPCI\Plugin;
|
||||||
|
|
||||||
|
abstract class AbstractPlugin implements Plugin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Define the stages that this plugin is allowed to run in.
|
||||||
|
* @see AbstractPlugin::canExecute()
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('setup', 'test', 'complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verify whether or not this plugin is allowed to execute in a given stage.
|
||||||
|
* @param string $stage
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isAllowedInStage($stage)
|
||||||
|
{
|
||||||
|
return in_array($stage, $this->allowedStages);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the plugin and return its success or failure.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
abstract public function execute();
|
||||||
|
}
|
|
@ -17,8 +17,13 @@ use PHPCI\Model\Build;
|
||||||
* Atoum plugin, runs Atoum tests within a project.
|
* Atoum plugin, runs Atoum tests within a project.
|
||||||
* @package PHPCI\Plugin
|
* @package PHPCI\Plugin
|
||||||
*/
|
*/
|
||||||
class Atoum implements \PHPCI\Plugin
|
class Atoum extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
private $args;
|
private $args;
|
||||||
private $config;
|
private $config;
|
||||||
private $directory;
|
private $directory;
|
||||||
|
|
|
@ -20,8 +20,13 @@ use PHPCI\Model\BuildError;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Behat implements \PHPCI\Plugin
|
class Behat extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
protected $build;
|
protected $build;
|
||||||
protected $features;
|
protected $features;
|
||||||
|
|
|
@ -20,8 +20,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Campfire implements \PHPCI\Plugin
|
class Campfire extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
private $url;
|
private $url;
|
||||||
private $authToken;
|
private $authToken;
|
||||||
private $userAgent;
|
private $userAgent;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class CleanBuild implements \PHPCI\Plugin
|
class CleanBuild extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $remove;
|
protected $remove;
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
|
|
|
@ -14,6 +14,7 @@ use PHPCI\Helper\Lang;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
use PHPCI\Plugin\Util\TestResultParsers\Codeception as Parser;
|
use PHPCI\Plugin\Util\TestResultParsers\Codeception as Parser;
|
||||||
use Psr\Log\LogLevel;
|
use Psr\Log\LogLevel;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Codeception Plugin - Enables full acceptance, unit, and functional testing.
|
* Codeception Plugin - Enables full acceptance, unit, and functional testing.
|
||||||
|
@ -23,8 +24,13 @@ use Psr\Log\LogLevel;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Codeception implements \PHPCI\Plugin, \PHPCI\ZeroConfigPlugin
|
class Codeception extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
protected $args = '';
|
protected $args = '';
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
use PHPCI\Helper\Lang;
|
use PHPCI\Helper\Lang;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Composer Plugin - Provides access to Composer functionality.
|
* Composer Plugin - Provides access to Composer functionality.
|
||||||
|
@ -20,7 +21,7 @@ use PHPCI\Helper\Lang;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Composer implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class Composer extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $action;
|
protected $action;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Helper\Lang;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class CopyBuild implements \PHPCI\Plugin
|
class CopyBuild extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $ignore;
|
protected $ignore;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Deployer implements \PHPCI\Plugin
|
class Deployer extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
protected $webhookUrl;
|
protected $webhookUrl;
|
||||||
protected $reason;
|
protected $reason;
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,13 @@ use Psr\Log\LogLevel;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Email implements \PHPCI\Plugin
|
class Email extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Env implements \PHPCI\Plugin
|
class Env extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
protected $build;
|
protected $build;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use Mremi\Flowdock\Api\Push\TeamInboxMessage;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class FlowdockNotify implements \PHPCI\Plugin
|
class FlowdockNotify extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
private $api_key;
|
private $api_key;
|
||||||
private $email;
|
private $email;
|
||||||
const MESSAGE_DEFAULT = 'Build %BUILD% has finished for commit <a href="%COMMIT_URI%">%SHORT_COMMIT%</a>
|
const MESSAGE_DEFAULT = 'Build %BUILD% has finished for commit <a href="%COMMIT_URI%">%SHORT_COMMIT%</a>
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Git implements \PHPCI\Plugin
|
class Git extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
protected $build;
|
protected $build;
|
||||||
|
|
|
@ -18,7 +18,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Grunt implements \PHPCI\Plugin
|
class Grunt extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $task;
|
protected $task;
|
||||||
|
|
|
@ -18,7 +18,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Gulp implements \PHPCI\Plugin
|
class Gulp extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $task;
|
protected $task;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class HipchatNotify implements \PHPCI\Plugin
|
class HipchatNotify extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
protected $authToken;
|
protected $authToken;
|
||||||
protected $color;
|
protected $color;
|
||||||
protected $notify;
|
protected $notify;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Irc implements \PHPCI\Plugin
|
class Irc extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
protected $build;
|
protected $build;
|
||||||
protected $message;
|
protected $message;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Lint implements PHPCI\Plugin
|
class Lint extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $directories;
|
protected $directories;
|
||||||
protected $recursive = true;
|
protected $recursive = true;
|
||||||
protected $ignore;
|
protected $ignore;
|
||||||
|
|
|
@ -21,7 +21,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Mysql implements \PHPCI\Plugin
|
class Mysql extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -18,7 +18,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PackageBuild implements \PHPCI\Plugin
|
class PackageBuild extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $filename;
|
protected $filename;
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Pdepend implements \PHPCI\Plugin
|
class Pdepend extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $args;
|
protected $args;
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Pgsql implements \PHPCI\Plugin
|
class Pgsql extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -10,7 +10,7 @@ use Phar as PHPPhar;
|
||||||
/**
|
/**
|
||||||
* Phar Plugin
|
* Phar Plugin
|
||||||
*/
|
*/
|
||||||
class Phar implements \PHPCI\Plugin
|
class Phar extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* PHPCI
|
* PHPCI
|
||||||
|
|
|
@ -20,7 +20,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Phing implements \PHPCI\Plugin
|
class Phing extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
|
||||||
private $directory;
|
private $directory;
|
||||||
|
|
|
@ -13,6 +13,7 @@ use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
use PHPCI\Model\BuildError;
|
use PHPCI\Model\BuildError;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Code Sniffer Plugin - Allows PHP Code Sniffer testing.
|
* PHP Code Sniffer Plugin - Allows PHP Code Sniffer testing.
|
||||||
|
@ -20,8 +21,13 @@ use PHPCI\Model\BuildError;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpCodeSniffer implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class PhpCodeSniffer extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -20,8 +20,13 @@ use PHPCI\Model\BuildError;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpCpd implements \PHPCI\Plugin
|
class PhpCpd extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $args;
|
protected $args;
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpCsFixer implements \PHPCI\Plugin
|
class PhpCsFixer extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace PHPCI\Plugin;
|
||||||
use PHPCI;
|
use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Docblock Checker Plugin - Checks your PHP files for appropriate uses of Docblocks
|
* PHP Docblock Checker Plugin - Checks your PHP files for appropriate uses of Docblocks
|
||||||
|
@ -19,8 +20,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpDocblockChecker implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class PhpDocblockChecker extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace PHPCI\Plugin;
|
||||||
use PHPCI;
|
use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Loc - Allows PHP Copy / Lines of Code testing.
|
* PHP Loc - Allows PHP Copy / Lines of Code testing.
|
||||||
|
@ -19,7 +20,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpLoc implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class PhpLoc extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace PHPCI\Plugin;
|
||||||
use PHPCI;
|
use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Mess Detector Plugin - Allows PHP Mess Detector testing.
|
* PHP Mess Detector Plugin - Allows PHP Mess Detector testing.
|
||||||
|
@ -19,8 +20,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpMessDetector implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class PhpMessDetector extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpParallelLint implements \PHPCI\Plugin
|
class PhpParallelLint extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpSpec implements PHPCI\Plugin
|
class PhpSpec extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -19,8 +19,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpTalLint implements PHPCI\Plugin
|
class PhpTalLint extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $directories;
|
protected $directories;
|
||||||
protected $recursive = true;
|
protected $recursive = true;
|
||||||
protected $suffixes;
|
protected $suffixes;
|
||||||
|
|
|
@ -13,6 +13,7 @@ use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
use PHPCI\Plugin\Util\TapParser;
|
use PHPCI\Plugin\Util\TapParser;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Unit Plugin - Allows PHP Unit testing.
|
* PHP Unit Plugin - Allows PHP Unit testing.
|
||||||
|
@ -20,8 +21,13 @@ use PHPCI\Plugin\Util\TapParser;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class PhpUnit implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class PhpUnit extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
protected $args;
|
protected $args;
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
protected $build;
|
protected $build;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Shell implements \PHPCI\Plugin
|
class Shell extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -17,8 +17,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class SlackNotify implements \PHPCI\Plugin
|
class SlackNotify extends AbstractPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('complete', 'success', 'failure', 'fixed', 'broken');
|
||||||
|
|
||||||
private $webHook;
|
private $webHook;
|
||||||
private $room;
|
private $room;
|
||||||
private $username;
|
private $username;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Sqlite implements \PHPCI\Plugin
|
class Sqlite extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -12,6 +12,7 @@ namespace PHPCI\Plugin;
|
||||||
use PHPCI;
|
use PHPCI;
|
||||||
use PHPCI\Builder;
|
use PHPCI\Builder;
|
||||||
use PHPCI\Model\Build;
|
use PHPCI\Model\Build;
|
||||||
|
use PHPCI\ZeroConfigPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Technical Debt Plugin - Checks for existence of "TODO", "FIXME", etc.
|
* Technical Debt Plugin - Checks for existence of "TODO", "FIXME", etc.
|
||||||
|
@ -20,8 +21,13 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class TechnicalDebt implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
|
class TechnicalDebt extends AbstractPlugin implements ZeroConfigPlugin
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
protected $allowedStages = array('test');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -138,7 +138,7 @@ class Executor
|
||||||
$this->setPluginStatus($stage, $plugin, Build::STATUS_RUNNING);
|
$this->setPluginStatus($stage, $plugin, Build::STATUS_RUNNING);
|
||||||
|
|
||||||
// Try and execute it
|
// Try and execute it
|
||||||
if ($this->executePlugin($plugin, $options)) {
|
if ($this->executePlugin($plugin, $options, $stage)) {
|
||||||
// Execution was successful
|
// Execution was successful
|
||||||
$this->logger->logSuccess(Lang::get('plugin_success'));
|
$this->logger->logSuccess(Lang::get('plugin_success'));
|
||||||
$this->setPluginStatus($stage, $plugin, Build::STATUS_SUCCESS);
|
$this->setPluginStatus($stage, $plugin, Build::STATUS_SUCCESS);
|
||||||
|
@ -166,8 +166,12 @@ class Executor
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes a given plugin, with options and returns the result.
|
* Executes a given plugin, with options and returns the result.
|
||||||
|
* @param string $plugin Plugin name
|
||||||
|
* @param array $options Plugin options (from phpci.yml)
|
||||||
|
* @param string $stage Stage name
|
||||||
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function executePlugin($plugin, $options)
|
public function executePlugin($plugin, $options, $stage)
|
||||||
{
|
{
|
||||||
// Any plugin name without a namespace separator is a PHPCI built in plugin
|
// Any plugin name without a namespace separator is a PHPCI built in plugin
|
||||||
// if not we assume it's a fully name-spaced class name that implements the plugin interface.
|
// if not we assume it's a fully name-spaced class name that implements the plugin interface.
|
||||||
|
@ -188,6 +192,12 @@ class Executor
|
||||||
try {
|
try {
|
||||||
// Build and run it
|
// Build and run it
|
||||||
$obj = $this->pluginFactory->buildPlugin($class, $options);
|
$obj = $this->pluginFactory->buildPlugin($class, $options);
|
||||||
|
|
||||||
|
if (!$obj->isAllowedInStage($stage)) {
|
||||||
|
$this->logger->logFailure('Plugin "' . $plugin . '" cannot be run in stage: ' . $stage);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return $obj->execute();
|
return $obj->execute();
|
||||||
} catch (\Exception $ex) {
|
} catch (\Exception $ex) {
|
||||||
$this->logger->logFailure(Lang::get('exception') . $ex->getMessage(), $ex);
|
$this->logger->logFailure(Lang::get('exception') . $ex->getMessage(), $ex);
|
||||||
|
|
|
@ -18,7 +18,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class Wipe implements \PHPCI\Plugin
|
class Wipe extends AbstractPlugin
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var \PHPCI\Builder
|
* @var \PHPCI\Builder
|
||||||
|
|
|
@ -18,7 +18,7 @@ use PHPCI\Model\Build;
|
||||||
* @package PHPCI
|
* @package PHPCI
|
||||||
* @subpackage Plugins
|
* @subpackage Plugins
|
||||||
*/
|
*/
|
||||||
class XMPP implements \PHPCI\Plugin
|
class XMPP extends AbstractPlugin
|
||||||
{
|
{
|
||||||
protected $directory;
|
protected $directory;
|
||||||
protected $phpci;
|
protected $phpci;
|
||||||
|
|
Loading…
Reference in a new issue