PHP Censor is an open source self-hosted continuous integration server for PHP projects.
PHP Censor is an open source, self-hosted, continuous integration server for PHP projects (PHPCI fork). Official twitter @php_censor.
PHP Censor versions:
Version Latest Branch Status Minimal PHP Version
1.0
(Morty Smith)
1.0.16
release-1.0
Old version (UNSUPPORTED)
>=5.6, <8.0
1.1
(Birdperson)
1.1.6
release-1.1
Old version (UNSUPPORTED)
>=5.6, <8.0
1.2
(Summer Smith)
1.2.4
release-1.2
Old version (UNSUPPORTED)
>=5.6, <8.0
1.3
(Jerry Smith)
1.3.7
release-1.3
Old version (UNSUPPORTED)
>=5.6, <8.0
2.0
(Rick Sanchez)
2.0.11
release-2.0
Last stable version (Upgrade from v1 to v2)
>=7.4
2.1
(Mr. Meeseeks)
2.1.3
release-2.1
Current stable version
>=7.4
2.2
WIP
master
Feature minor version (WIP)
>=7.4
More screenshots.
System requirements
Unix-like OS (Windows isn't supported);
PHP 7.4+ (with OpenSSL support and enabled functions: exec()
, shell_exec()
and proc_open()
);
Web-server (Nginx or Apache2);
Database (MySQL/MariaDB or PostgreSQL);
Beanstalkd queue;
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, PHPMessDetector, PHPTalLint and TechnicalDebt;
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 to Email, XMPP, Slack, IRC, Flowdock and Telegram;
Use your LDAP-server for authentication;
Changelog
Roadmap
See milestones.
Installing
See Installing section in documentation;
Updating
See Updating section in documentation;
Configuring project
There are several ways to set up the project:
Add project without any project config (Runs "zero-config" plugins, including: Composer, TechnicalDebt, PHPLoc, PHPCpd, PHPCodeSniffer, PHPMessDetector, 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
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" directory: "." test: php_unit: config: "phpunit.xml" php_mess_detector: allow_failures: true php_code_sniffer: standard: "PSR2" php_cpd: allow_failures: true complete: email_notify: default_mailto_address: admin@php-censor.local
More details about configuring project in documentation.
Migrations
Run to apply latest migrations:
cd /path/to/php-censor ./bin/console php-censor-migrations:migrate
Run to create a new migration:
cd /path/to/php-censor ./bin/console php-censor-migrations:create NewMigrationNameCode style
cd /path/to/php-censorTests./vendor/bin/php-cs-fixer fix --allow-risky=yes
cd /path/to/php-censor./vendor/bin/phpunit --configuration ./phpunit.xml.dist --coverage-html ./tests/runtime/coverage -vvv --colors=always
For Phar plugin tests set phar.readonly
setting to Off (0
) in php.ini
config. Otherwise the tests will be skipped.
For database tests create an empty databases on 'localhost' with user/password for MySQL/PostgreSQL and set env
variables from phpunit.xml.dist
config. For example:
#!/usr/bin/env bashDocumentationpsql --username="test" --host="127.0.0.1" --echo-all --command="DROP DATABASE IF EXISTS \"php-censor-test\";" psql --username="test" --host="127.0.0.1" --echo-all --command="CREATE DATABASE \"php-censor-test\";"
mysql --user="test" --password="test" --host="127.0.0.1" --verbose --execute="CREATE DATABASE IF NOT EXISTS `php-censor-test`;"
export SKIP_DB_TESTS=0;\ export POSTGRESQL_DBNAME=php-censor-test;\ export POSTGRESQL_USER=test;\ export POSTGRESQL_PASSWORD=test;\ export MYSQL_DBNAME=php-censor-test;\ export MYSQL_USER=test;\ export MYSQL_PASSWORD=test;\ vendor/bin/phpunit --configuration=phpunit.xml.dist --verbose
Full PHP Censor documentation.
License
PHP Censor is open source software licensed under the BSD-2-Clause license.
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.