add new plugin

This commit is contained in:
Alexander Gansky 2015-12-19 20:11:35 +02:00
parent 5c45d62629
commit a1f5403b32
2 changed files with 120 additions and 0 deletions

View file

@ -0,0 +1,78 @@
<?php
/**
* PHPCI - Continuous Integration for PHP. Plugin for using Symfony2 commands.
*
* @package PHPCI\Plugin
* @author Alexander Gansky <a.gansky@mindteam.com.ua>
* @license https://github.com/mindteam/phpci-symfony2-plugin/blob/master/LICENSE
* @link http://mindteam.com.ua
*/
namespace PHPCI\Plugin;
use PHPCI\Builder;
use PHPCI\Model\Build;
use Symfony\Component\Yaml\Parser as YamlParser;
use PHPCI\Plugin as BaseInterface;
/**
* Plugin for Symfony2 commands
*/
class SymfonyCommands implements BaseInterface
{
protected $directory;
protected $phpci;
protected $build;
protected $commandList = array();
/**
* Set up the plugin, configure options, etc.
*
* @param Builder $phpci
* @param Build $build
* @param array $options
*/
public function __construct(Builder $phpci, Build $build, array $options = array())
{
$this->phpci = $phpci;
$this->build = $build;
$this->directory = $phpci->buildPath;
if (isset($options['commands'])) {
$this->commandList = $options['commands'];
}
}
/**
* Executes Symfony2 commands
*
* @return boolean plugin work status
*/
public function execute()
{
$success = true;
foreach ($this->commandList as $command) {
if (!$this->runSingleCommand($command)) {
$success = false;
break;
}
}
return $success;
}
/**
* Run one command
*
* @param string $command command for cymfony
*
* @return boolean
*/
public function runSingleCommand($command)
{
$cmd = 'php ' . $this->directory . 'app/console ';
return $this->phpci->executeCommand($cmd . $command, $this->directory);
}
}

42
local_vars.php Normal file
View file

@ -0,0 +1,42 @@
<?php
// Define our APPLICATION_PATH, if not already defined:
if (!defined('APPLICATION_PATH')) {
define('APPLICATION_PATH', dirname(__FILE__) . '/');
define('PHPCI_DIR', APPLICATION_PATH);
}
// Define our PHPCI_URL, if not already defined:
if (!defined('PHPCI_URL') && isset($config)) {
define('PHPCI_URL', $config->get('phpci.url', '') . '/');
}
// Define PHPCI_BIN_DIR
if (!defined('PHPCI_BIN_DIR')) {
define('PHPCI_BIN_DIR', PHPCI_DIR . 'vendor/bin/');
}
// Define PHPCI_BUILD_ROOT_DIR
if (!defined('PHPCI_BUILD_ROOT_DIR')) {
define('PHPCI_BUILD_ROOT_DIR', PHPCI_DIR . 'PHPCI/build/');
}
// Should PHPCI run the Shell plugin?
if (!defined('ENABLE_SHELL_PLUGIN')) {
define('ENABLE_SHELL_PLUGIN', false);
}
// If this is not already defined, we're not running in the console:
if (!defined('PHPCI_IS_CONSOLE')) {
define('PHPCI_IS_CONSOLE', false);
}
if (!defined('IS_WIN')) {
define('IS_WIN', ((strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? true : false));
}
// If an environment variable is set defining our config location, use that
// otherwise fall back to PHPCI/config.yml.
if (!defined('PHPCI_CONFIG_FILE')) {
define('PHPCI_CONFIG_FILE', $configFile);
}