Go to file
2018-03-07 22:18:35 +07:00
app Added ./app directory to Git. 2017-05-29 19:37:25 +07:00
bin Removed 'console.bat' file. 2017-09-17 20:21:38 +07:00
docs Documentation improvements. 2018-03-07 22:18:35 +07:00
public Added PHPUnit code coverage log output and chart in information tab. 2018-03-06 19:47:10 +07:00
runtime Replace cache to Symfony/Cache component. 2018-02-21 10:46:55 +07:00
src Added PHPUnit code coverage log output and chart in information tab. 2018-03-06 19:47:10 +07:00
tests Added PHPUnit code coverage log output and chart in information tab. 2018-03-06 19:47:10 +07:00
.codecov.yml Added .codecov.yml config to the project and fixed code coverage 2018-02-23 18:33:54 +07:00
.editorconfig Added .editorconfig file. See: http://editorconfig.org. 2017-11-11 18:46:47 +07:00
.gitignore Replace cache to Symfony/Cache component. 2018-02-21 10:46:55 +07:00
.php-censor.yml Added coverage option in .php-censor.yml config. 2018-03-06 20:41:51 +07:00
.travis.yml Merged PostgreSQL and MySQL tests inti one PHPUnit XML config. 2018-02-28 18:45:03 +07:00
bootstrap.php PHPUnit tests improvements. 2018-02-28 22:40:50 +07:00
CHANGELOG.md Documentation improvements. 2018-03-07 22:18:35 +07:00
CODE_OF_CONDUCT.md Improved ISSUE_TEMPLATE.md. 2018-03-07 22:18:35 +07:00
composer.json Added PHPUnit DBUnit extension. 2018-02-28 23:01:40 +07:00
composer.lock Added PHPUnit DBUnit extension. 2018-02-28 23:01:40 +07:00
CONTRIBUTING.md Code style fixes. 2017-11-11 19:34:58 +07:00
ISSUE_TEMPLATE.md Improved ISSUE_TEMPLATE.md. 2018-03-07 22:18:35 +07:00
LICENSE.md Small updates 2017-01-06 11:15:08 +07:00
phpmd.xml Code style fixes for plugins. 2018-02-04 14:22:07 +07:00
phpunit.xml PHPUnit tests improvements. 2018-02-28 22:40:50 +07:00
PULL_REQUEST_TEMPLATE.md Code style fixes. 2017-11-11 19:34:58 +07:00
README.md Documentation improvements. 2018-03-07 22:18:35 +07:00
VERSION.md Updated application version to 0.21.0. 2018-02-21 11:16:04 +07:00

PHP Censor Travis CI SensioLabs Insight Codecov Latest Version Total downloads License

PHP Censor

PHP Censor is a open source self-hosted continuous integration server for PHP projects (PHPCI fork).

Twitter: @php_censor.

Dashboard

More screenshots.

System requirements

  • Unix-like OS (Windows isn't supported);

  • PHP 5.6+ (with OpenSSL support and enabled functions: exec(), shell_exec() and proc_open());

  • Web-server (Nginx or Apache2);

  • Database (MySQL/MariaDB or PostgreSQL);

  • Beanstalkd queue (Optional, needed if you use worker instead of cronjob);

Features

  • Clone project from GitHub, Bitbucket (Git/Hg), GitLab, Git, Hg (Mercurial), SVN (Subversion) or from local directory;

  • Set up and tear down database tests for PostgreSQL, MySQL or SQLite;

  • Install Composer dependencies;

  • Run tests for PHPUnit, Atoum, Behat, Codeception and PHPSpec;

  • Check code via Lint, PHPParallelLint, Pdepend, PHPCodeSniffer, PHPCpd, PHPCsFixer, PHPDocblockChecker, PHPLoc, PHPMessDetect, PHPTalLint and TechnicalDept;

  • Run through any combination of the other supported plugins, including Campfire, CleanBuild, CopyBuild, Deployer, Env, Git, Grunt, Gulp, PackageBuild, Phar, Phing, Shell and Wipe;

  • Send notifications on Email, XMPP, Slack, IRC, Flowdock, HipChat and Telegram;

  • Use your LDAP-server for authentication;

Installing

  • Go to the directory in which you want to install PHP Censor, for example: /var/www:
cd /var/www
  • Create project by Composer:
composer create-project php-censor/php-censor php-censor.local --keep-vcs

Or download latest archive from GitHub, unzip it and run composer install.

  • Create empty database for application (MySQL/MariaDB or PostgreSQL);

  • Install Beanstalkd Queue (Optional, if you are going to use queue with Worker):

aptitude install beanstalkd # For deb-based
  • Install PHP Censor itself:
cd ./php-censor.local

# Interactive installation
./bin/console php-censor:install

# Non-interactive installation
./bin/console php-censor:install --url='http://php-censor.local' --db-type=pgsql --db-host=localhost --db-name=php-censor --db-user=php-censor --db-password=php-censor --db-port=null --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local' --queue-use=1 --queue-host=localhost --queue-name=php-censor

# Non-interactive installation with prepared config.yml file
./bin/console php-censor:install --config-from-file=yes --admin-name=admin --admin-password=admin --admin-email='admin@php-censor.local'

Installing via Docker

If you want to install PHP Censor as Docker container, you can use php-censor/docker-php-censor project.

Updating

  • Go to your PHP Censor directory (to /var/www/php-censor.local for example):

    cd /var/www/php-censor.local
    
  • Pull the latest code from repository by Git (If you want latest master branch):

    git checkout master
    git pull -r
    

    Or pull latest version:

    git fetch
    git checkout <version>
    
  • Update the Composer dependencies: composer install

  • Update the database scheme:

    ./bin/console php-censor-migrations:migrate
    
  • Restart Supervisord workers (If you use workers and Supervisord):

    sudo supervisorctl status
    sudo supervisorctl restart <worker:worker_00>
    ...
    sudo supervisorctl restart <worker:worker_nn>
    

    Or restart Systemd workers (If you use workers and Systemd):

    sudo systemctl restart <worker@1.service>
    ...
    sudo systemctl restart <worker@n.service>
    

Configuring project

There are several ways to set up the project:

  • Add project without any project config (Runs "zero-config" plugins, including: Composer, TechnicalDept, PHPLoc, PHPCpd, PHPCodeSniffer, PHPMessDetect, PHPDocblockChecker, PHPParallelLint, PHPUnit and Codeception);

  • Similar to Travis CI, to support PHP Censor in your project, you simply need to add a .php-censor.yml (phpci.yml/.phpci.yml for backward compatibility with PHPCI) file to the root of your repository;

  • Add project config in PHP Censor project page (And it will cancel file config from project repository);

The project config should look something like this:

setup:
  composer:
    action: "install"
test:
  php_unit:
    config: "phpunit.xml"
  php_mess_detector:
    allow_failures: true
  php_code_sniffer:
    standard: "PSR2"
  php_cpd:
    allow_failures: true
complete:
  email:
    default_mailto_address: admin@php-censor.local

More details about configuring project.

Migrations

Run to apply latest migrations:

cd /path/to/php-censor
./bin/console php-censor-migrations:migrate

Run to create new migration:

cd /path/to/php-censor
./bin/console php-censor-migrations:create NewMigrationName

Tests

cd /path/to/php-censor

# For testing on MySQL
./vendor/bin/phpunit --configuration ./phpunit.mysql.xml

# For testing on PostgreSQL
./vendor/bin/phpunit --configuration ./phpunit.pgsql.xml

For Phar plugin tests set 'phar.readonly' setting to Off (0) in php.ini config. Otherwise tests will be skipped.

For database B8Framework tests create empty 'b8_test' database on 'localhost' with user/password: root/<empty> for MySQL and with user/password: postgres/<empty> for PostgreSQL (You can change default test user, password and database name in phpunit.mysql|pgsql.xml config). If connection failed tests will be skipped.

Documentation

Full PHP Censor documentation.

License

PHP Censor is open source software licensed under the BSD-2-Clause license.