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.13 |
release-2.0 |
Last stable version (Upgrade from v1 to v2) | >=7.4 |
2.1 (Mr. Meeseeks) |
2.1.5 |
release-2.1 |
Current stable version | >=7.4 |
2.2 |
WIP | master |
Feature minor version (WIP) | >=7.4 |
More screenshots.
- System requirements
- Features
- Changelog
- Roadmap
- Installing
- Updating
- Configuring project
- Migrations
- Code style
- Tests
- Documentation
- License
-
Unix-like OS (Windows isn't supported);
-
PHP 7.4+ (with OpenSSL support and enabled functions:
exec()
,shell_exec()
andproc_open()
); -
Web-server (Nginx or Apache2);
-
Database (MySQL/MariaDB or PostgreSQL);
-
Beanstalkd queue;
-
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;
See milestones.
See Installing section in documentation;
See Updating section in documentation;
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.
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 NewMigrationName
cd /path/to/php-censor
./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 bash
psql --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.
PHP Censor is open source software licensed under the BSD-2-Clause license.