在PHPCI中构建需要永远

I'm setting up Continues Integration and I'm wondering if everything should take so damn long. My build is running for over a day in the mean time and still it's not finished.

It is a normal Laravel app with around 20 controllers, so a little time is granted, but over a day?

My config is fairly simple in my opinion:

build_settings:
ignore:
    - "vendor"
setup:
composer:
    action: "install"

test:
php_mess_detector:
    allow_failures: true
php_code_sniffer:
    standard: "PSR2"
php_cpd:
    allow_failures: true
php_docblock_checker:
    allowed_warnings: 10
    skip_classes: true
php_loc:
    directory: "src"

No errors, only the (by now) pesky status "Pending"

When I check the logs I get this error:

2016/01/28 08:01:32 [error] 6702#0: *4 FastCGI sent in stderr: "PHP message: PHP Fatal error: Class 'PHPCI\Controller' not found in /var/www/vendor/block8/b8framework/b8/Application.php on line 93" while reading response header from upstream, client: someipaddress, server: green.somedomain.com, request: "GET /assets/js/plugins/datepicker/locales/bootstrap-datepicker.en.js HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "green.somedomain.com", referrer: "http://green.somedomain.com/build/view/5"

I did composer update / install and I also added the following rule to the nginx configuration:

fastcgi_param SCRIPT_NAME index.php;

My question is, is this normal? Is my config good? Am I forgetting something?

You've not set up the build runner when you set up PHPCI. The web interface merely creates the build and displays the results, you need to run the command line tool to run the builds.

There are three ways to set this up:

  1. (New in 1.7 beta) PHPCI Worker w/ beanstalkd.

    • Install beanstalkd
    • Use supervisord (or similar) to run /path/to/phpci/console phpci:worker
  2. (Recommended for 1.6 and below) PHPCI Daemon: https://www.phptesting.org/wiki/Run-Builds-Using-a-Daemon

  3. (Fallback option) Cron: https://www.phptesting.org/wiki/Run-Builds-Using-Cron