diff --git a/.phpci.yml b/.phpci.yml
index d6ea0921..b4fd52ec 100644
--- a/.phpci.yml
+++ b/.phpci.yml
@@ -13,6 +13,7 @@ build_settings:
setup:
composer:
action: "install"
+ prefer_dist: false
test:
php_parallel_lint:
diff --git a/PHPCI/Builder.php b/PHPCI/Builder.php
index 1aed3d3f..0edc44d8 100644
--- a/PHPCI/Builder.php
+++ b/PHPCI/Builder.php
@@ -213,6 +213,8 @@ class Builder implements LoggerAwareInterface
$this->build->setStatus(Build::STATUS_FAILED);
}
+ // Complete stage plugins are always run
+ $this->pluginExecutor->executePlugins($this->config, 'complete');
if ($success) {
$this->pluginExecutor->executePlugins($this->config, 'success');
@@ -234,9 +236,6 @@ class Builder implements LoggerAwareInterface
} catch (\Exception $ex) {
$this->build->setStatus(Build::STATUS_FAILED);
$this->buildLogger->logFailure(Lang::get('exception') . $ex->getMessage());
- }finally{
- // Complete stage plugins are always run
- $this->pluginExecutor->executePlugins($this->config, 'complete');
}
diff --git a/PHPCI/Command/InstallCommand.php b/PHPCI/Command/InstallCommand.php
index 5f5cbd67..318871a5 100644
--- a/PHPCI/Command/InstallCommand.php
+++ b/PHPCI/Command/InstallCommand.php
@@ -21,7 +21,6 @@ use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use PHPCI\Service\UserService;
-use Symfony\Component\Console\Question\ConfirmationQuestion;
/**
* Install console command - Installs PHPCI.
@@ -254,14 +253,6 @@ class InstallCommand extends Command
$rtn = [];
- $helper = $this->getHelper('question');
- $question = new ConfirmationQuestion('Use beanstalkd to manage build queue? ', true);
-
- if (!$helper->ask($input, $output, $question)) {
- $output->writeln('Skipping beanstalkd configuration.');
- return null;
- }
-
if (!$rtn['host'] = $input->getOption('queue-server')) {
$rtn['host'] = $dialog->ask($output, 'Enter your beanstalkd hostname [localhost]: ', 'localhost');
}
diff --git a/PHPCI/Command/WorkerCommand.php b/PHPCI/Command/WorkerCommand.php
index 5ceb6a84..49685656 100644
--- a/PHPCI/Command/WorkerCommand.php
+++ b/PHPCI/Command/WorkerCommand.php
@@ -50,8 +50,7 @@ class WorkerCommand extends Command
{
$this
->setName('phpci:worker')
- ->setDescription('Runs the PHPCI build worker.')
- ->addOption('debug', null, null, 'Run PHPCI in Debug Mode');
+ ->setDescription('Runs the PHPCI build worker.');
}
protected function execute(InputInterface $input, OutputInterface $output)
@@ -66,12 +65,6 @@ class WorkerCommand extends Command
);
}
- // Allow PHPCI to run in "debug mode"
- if ($input->hasOption('debug') && $input->getOption('debug')) {
- $output->writeln('Debug mode enabled.');
- define('PHPCI_DEBUG_MODE', true);
- }
-
$config = Config::getInstance()->get('phpci.worker', []);
if (empty($config['host']) || empty($config['queue'])) {
diff --git a/PHPCI/Controller/BuildController.php b/PHPCI/Controller/BuildController.php
index 55ccbb37..f68a739c 100644
--- a/PHPCI/Controller/BuildController.php
+++ b/PHPCI/Controller/BuildController.php
@@ -180,7 +180,7 @@ class BuildController extends \PHPCI\Controller
$errorView->build = $build;
$errorView->errors = $errors;
- $data['errors'] = $errorStore->getErrorTotalForBuild($build->getId());
+ $data['errors'] = count($errors);
$data['error_html'] = $errorView->render();
$data['since'] = (new \DateTime())->format('Y-m-d H:i:s');
@@ -200,10 +200,6 @@ class BuildController extends \PHPCI\Controller
$build = $this->buildService->createDuplicateBuild($copy);
- if ($this->buildService->queueError) {
- $_SESSION['global_error'] = Lang::get('add_to_queue_failed');
- }
-
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
return $response;
diff --git a/PHPCI/Controller/ProjectController.php b/PHPCI/Controller/ProjectController.php
index 72be46e5..be5dee19 100644
--- a/PHPCI/Controller/ProjectController.php
+++ b/PHPCI/Controller/ProjectController.php
@@ -116,10 +116,6 @@ class ProjectController extends PHPCI\Controller
$email = $_SESSION['phpci_user']->getEmail();
$build = $this->buildService->createBuild($project, null, urldecode($branch), $email);
- if ($this->buildService->queueError) {
- $_SESSION['global_error'] = Lang::get('add_to_queue_failed');
- }
-
$response = new b8\Http\Response\RedirectResponse();
$response->setHeader('Location', PHPCI_URL.'build/view/' . $build->getId());
return $response;
diff --git a/PHPCI/Controller/WebhookController.php b/PHPCI/Controller/WebhookController.php
index 4b444d03..b43bd1cd 100644
--- a/PHPCI/Controller/WebhookController.php
+++ b/PHPCI/Controller/WebhookController.php
@@ -27,8 +27,6 @@ use PHPCI\Store\ProjectStore;
* @author Guillaume Perréal
* @package PHPCI
* @subpackage Web
- *
- * @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
*/
class WebhookController extends \b8\Controller
{
diff --git a/PHPCI/Helper/BaseCommandExecutor.php b/PHPCI/Helper/BaseCommandExecutor.php
index b3b47f7b..bd948834 100644
--- a/PHPCI/Helper/BaseCommandExecutor.php
+++ b/PHPCI/Helper/BaseCommandExecutor.php
@@ -76,7 +76,6 @@ abstract class BaseCommandExecutor implements CommandExecutor
$this->lastOutput = array();
$command = call_user_func_array('sprintf', $args);
- $this->logger->logDebug($command);
if ($this->quiet) {
$this->logger->log('Executing: ' . $command);
@@ -90,6 +89,7 @@ abstract class BaseCommandExecutor implements CommandExecutor
);
$pipes = array();
+
$process = proc_open($command, $descriptorSpec, $pipes, $this->buildPath, null);
if (is_resource($process)) {
diff --git a/PHPCI/Languages/lang.en.php b/PHPCI/Languages/lang.en.php
index 63df75d2..eec2ee07 100644
--- a/PHPCI/Languages/lang.en.php
+++ b/PHPCI/Languages/lang.en.php
@@ -372,9 +372,6 @@ PHPCI',
'project_id_argument' => 'A project ID',
'commit_id_option' => 'Commit ID to build',
'branch_name_option' => 'Branch to build',
- 'add_to_queue_failed' => 'Build created successfully, but failed to add to build queue. This usually happens
- when PHPCI is set to use a beanstalkd server that does not exist,
- or your beanstalkd server has stopped.',
// Run Command
'run_all_pending' => 'Run all pending PHPCI builds.',
diff --git a/PHPCI/Logging/BuildLogger.php b/PHPCI/Logging/BuildLogger.php
index a68e9e6d..73f3b464 100644
--- a/PHPCI/Logging/BuildLogger.php
+++ b/PHPCI/Logging/BuildLogger.php
@@ -67,7 +67,7 @@ class BuildLogger implements LoggerAwareInterface
}
}
- /**
+ /**
* Add a success-coloured message to the log.
* @param string
*/
@@ -98,17 +98,6 @@ class BuildLogger implements LoggerAwareInterface
);
}
- /**
- * Add a debug message to the log.
- * @param string
- */
- public function logDebug($message)
- {
- if (defined('PHPCI_DEBUG_MODE') && PHPCI_DEBUG_MODE) {
- $this->log("\033[0;33m" . $message . "\033[0m");
- }
- }
-
/**
* Sets a logger instance on the object
*
diff --git a/PHPCI/Migrations/20160623100223_project_table_defaults.php b/PHPCI/Migrations/20160623100223_project_table_defaults.php
deleted file mode 100644
index 079db327..00000000
--- a/PHPCI/Migrations/20160623100223_project_table_defaults.php
+++ /dev/null
@@ -1,18 +0,0 @@
-table('project')
- ->changeColumn('build_config', MysqlAdapter::PHINX_TYPE_TEXT, array('null' => true))
- ->changeColumn('archived', MysqlAdapter::PHINX_TYPE_INTEGER, array(
- 'length' => MysqlAdapter::INT_TINY,
- 'default' => 0,
- ))
- ->save();
- }
-}
diff --git a/PHPCI/Model/Project.php b/PHPCI/Model/Project.php
index 4b5268b2..717b0d9a 100644
--- a/PHPCI/Model/Project.php
+++ b/PHPCI/Model/Project.php
@@ -96,7 +96,7 @@ class Project extends ProjectBase
$info = $this->data['access_information'];
// Handle old-format (serialized) access information first:
- if (!empty($info) && !in_array(substr($info, 0, 1), array('{', '['))) {
+ if (!empty($info) && substr($info, 0, 1) != '{') {
$data = unserialize($info);
} else {
$data = json_decode($info, true);
diff --git a/PHPCI/Plugin/Composer.php b/PHPCI/Plugin/Composer.php
index 7bd86ac3..bd5f6658 100644
--- a/PHPCI/Plugin/Composer.php
+++ b/PHPCI/Plugin/Composer.php
@@ -61,7 +61,6 @@ class Composer implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
$this->directory = $path;
$this->action = 'install';
$this->preferDist = false;
- $this->preferSource = false;
$this->nodev = false;
if (array_key_exists('directory', $options)) {
@@ -76,11 +75,6 @@ class Composer implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
$this->preferDist = (bool)$options['prefer_dist'];
}
- if (array_key_exists('prefer_source', $options)) {
- $this->preferDist = false;
- $this->preferSource = (bool)$options['prefer_source'];
- }
-
if (array_key_exists('no_dev', $options)) {
$this->nodev = (bool)$options['no_dev'];
}
@@ -103,12 +97,10 @@ class Composer implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin
if ($this->preferDist) {
$this->phpci->log('Using --prefer-dist flag');
- $cmd .= ' --prefer-dist';
- }
-
- if ($this->preferSource) {
+ $cmd .= '--prefer-dist';
+ } else {
$this->phpci->log('Using --prefer-source flag');
- $cmd .= ' --prefer-source';
+ $cmd .= '--prefer-source';
}
if ($this->nodev) {
diff --git a/PHPCI/Plugin/PhpCpd.php b/PHPCI/Plugin/PhpCpd.php
old mode 100755
new mode 100644
index aa076d2d..2424d41e
--- a/PHPCI/Plugin/PhpCpd.php
+++ b/PHPCI/Plugin/PhpCpd.php
@@ -50,12 +50,17 @@ class PhpCpd implements \PHPCI\Plugin
$this->build = $build;
$this->path = $phpci->buildPath;
+ $this->standard = 'PSR1';
$this->ignore = $phpci->ignore;
if (!empty($options['path'])) {
$this->path = $phpci->buildPath . $options['path'];
}
+ if (!empty($options['standard'])) {
+ $this->standard = $options['standard'];
+ }
+
if (!empty($options['ignore'])) {
$this->ignore = $options['ignore'];
}
diff --git a/PHPCI/Plugin/Util/TestResultParsers/Codeception.php b/PHPCI/Plugin/Util/TestResultParsers/Codeception.php
index 24af62e4..39f28666 100644
--- a/PHPCI/Plugin/Util/TestResultParsers/Codeception.php
+++ b/PHPCI/Plugin/Util/TestResultParsers/Codeception.php
@@ -30,6 +30,7 @@ class Codeception implements ParserInterface
{
$this->phpci = $phpci;
$this->resultsXml = $resultsXml;
+
$this->totalTests = 0;
}
@@ -70,7 +71,7 @@ class Codeception implements ParserInterface
if (isset($testcase->failure) || isset($testcase->error)) {
$testresult['pass'] = false;
- $testresult['message'] = (string)$testcase->failure . (string)$testcase->error;
+ $testresult['message'] = isset($testcase->failure) ? (string) $testcase->failure : (string) $testcase->error;
} else {
$testresult['pass'] = true;
}
diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php
index a120a64e..dca0fc0d 100644
--- a/PHPCI/Service/BuildService.php
+++ b/PHPCI/Service/BuildService.php
@@ -30,11 +30,6 @@ class BuildService
*/
protected $buildStore;
- /**
- * @var bool
- */
- public $queueError = false;
-
/**
* @param BuildStore $buildStore
*/
@@ -160,30 +155,27 @@ class BuildService
}
$config = Config::getInstance();
+
$settings = $config->get('phpci.worker', []);
if (!empty($settings['host']) && !empty($settings['queue'])) {
- try {
- $jobData = array(
- 'type' => 'phpci.build',
- 'build_id' => $build->getId(),
- );
+ $jobData = array(
+ 'type' => 'phpci.build',
+ 'build_id' => $build->getId(),
+ );
- if ($config->get('using_custom_file')) {
- $jobData['config'] = $config->getArray();
- }
-
- $pheanstalk = new Pheanstalk($settings['host']);
- $pheanstalk->useTube($settings['queue']);
- $pheanstalk->put(
- json_encode($jobData),
- PheanstalkInterface::DEFAULT_PRIORITY,
- PheanstalkInterface::DEFAULT_DELAY,
- $config->get('phpci.worker.job_timeout', 600)
- );
- } catch (\Exception $ex) {
- $this->queueError = true;
+ if ($config->get('using_custom_file')) {
+ $jobData['config'] = $config->getArray();
}
+
+ $pheanstalk = new Pheanstalk($settings['host']);
+ $pheanstalk->useTube($settings['queue']);
+ $pheanstalk->put(
+ json_encode($jobData),
+ PheanstalkInterface::DEFAULT_PRIORITY,
+ PheanstalkInterface::DEFAULT_DELAY,
+ $config->get('phpci.worker.job_timeout', 600)
+ );
}
}
}
diff --git a/PHPCI/Store/BuildErrorStore.php b/PHPCI/Store/BuildErrorStore.php
index c2d32468..815a4d18 100644
--- a/PHPCI/Store/BuildErrorStore.php
+++ b/PHPCI/Store/BuildErrorStore.php
@@ -54,27 +54,4 @@ class BuildErrorStore extends BuildErrorStoreBase
return array();
}
}
-
- /**
- * Gets the total number of errors for a given build.
- * @param $buildId
- * @param string $since date string
- * @return array
- */
- public function getErrorTotalForBuild($buildId)
- {
- $query = 'SELECT COUNT(*) AS total FROM build_error
- WHERE build_id = :build';
-
- $stmt = Database::getConnection('read')->prepare($query);
-
- $stmt->bindValue(':build', $buildId, \PDO::PARAM_INT);
-
- if ($stmt->execute()) {
- $res = $stmt->fetch(\PDO::FETCH_ASSOC);
- return $res['total'];
- } else {
- return array();
- }
- }
}
diff --git a/PHPCI/View/layout.phtml b/PHPCI/View/layout.phtml
index 1960aff6..2e105c18 100644
--- a/PHPCI/View/layout.phtml
+++ b/PHPCI/View/layout.phtml
@@ -292,14 +292,6 @@
- ' . $message . '';
- }
- ?>
-
diff --git a/README.md b/README.md
index 77683b91..910e15f7 100644
--- a/README.md
+++ b/README.md
@@ -11,12 +11,6 @@ PHPCI is a free and open source (BSD License) continuous integration tool specif
We have a chat room for discussing PHPCI, you can access it here: [](https://gitter.im/Block8/PHPCI?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge)
-**Support the development of PHPCI**
-
-We [now accept donations](https://www.phptesting.org/support) to directly support the ongoing development of PHPCI. There is of course no obligation to donate, nor any commitment if you do.
-
-[Donate](https://www.phptesting.org/support)
-
## What it does:
* Clones your project from Github, Bitbucket or a local path
* Allows you to set up and tear down test databases.