All Projects → php-censor → Php Censor

php-censor / Php Censor

Licence: bsd-2-clause
PHP Censor is an open source self-hosted continuous integration server for PHP projects.

Projects that are alternatives of or similar to Php Censor

Concourse
Concourse is a container-based continuous thing-doer written in Go.
Stars: ✭ 6,070 (+880.61%)
Mutual labels:  hacktoberfest, ci, continuous-integration
Moderncppci
This is an example of doing a Modern C++ project with CI
Stars: ✭ 109 (-82.39%)
Mutual labels:  ci, continuous-integration, unit-testing
developer-ci-benefits
Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
Stars: ✭ 29 (-95.32%)
Mutual labels:  unit-testing, continuous-integration, ci
Lambdacd
a library to define a continuous delivery pipeline in code
Stars: ✭ 655 (+5.82%)
Mutual labels:  hacktoberfest, ci, continuous-integration
Gitlab Ci Pipeline Php
☕️ Docker images for test PHP applications with Gitlab CI (or any other CI platform!)
Stars: ✭ 451 (-27.14%)
Mutual labels:  hacktoberfest, ci, continuous-integration
Cimonitor
Displays CI statuses on a dashboard and triggers fun modules representing the status!
Stars: ✭ 34 (-94.51%)
Mutual labels:  hacktoberfest, ci, continuous-integration
github-act-runner
act as self-hosted runner
Stars: ✭ 68 (-89.01%)
Mutual labels:  continuous-integration, ci, self-hosted
Grouparoo
🦘 The Grouparoo Monorepo - open source customer data sync framework
Stars: ✭ 334 (-46.04%)
Mutual labels:  self-hosted, hacktoberfest
Xcpretty
Flexible and fast xcodebuild formatter
Stars: ✭ 3,686 (+495.48%)
Mutual labels:  ci, continuous-integration
Pg Mem
An in memory postgres DB instance for your unit tests
Stars: ✭ 350 (-43.46%)
Mutual labels:  hacktoberfest, unit-testing
Circleci Images
Scripts to generate images for building projects on CircleCI 2.0
Stars: ✭ 397 (-35.86%)
Mutual labels:  hacktoberfest, continuous-integration
Jenkins
Jenkins automation server
Stars: ✭ 18,225 (+2844.26%)
Mutual labels:  hacktoberfest, continuous-integration
Cds
Enterprise-Grade Continuous Delivery & DevOps Automation Open Source Platform
Stars: ✭ 3,677 (+494.02%)
Mutual labels:  hacktoberfest, continuous-integration
Unity Actions
Github actions for testing and building Unity projects
Stars: ✭ 358 (-42.16%)
Mutual labels:  hacktoberfest, ci
Horusec
Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Stars: ✭ 311 (-49.76%)
Mutual labels:  hacktoberfest, ci
Ava
Node.js test runner that lets you develop with confidence 🚀
Stars: ✭ 19,458 (+3043.46%)
Mutual labels:  hacktoberfest, unit-testing
Ccmenu
CCMenu is a Mac application to monitor continuous integration servers.
Stars: ✭ 306 (-50.57%)
Mutual labels:  ci, continuous-integration
Onpremise
Sentry, feature-complete and packaged up for low-volume deployments and proofs-of-concept
Stars: ✭ 4,558 (+636.35%)
Mutual labels:  self-hosted, hacktoberfest
Huskyci
Performing security tests inside your CI
Stars: ✭ 398 (-35.7%)
Mutual labels:  hacktoberfest, continuous-integration
Xcov
Nice code coverage reporting without hassle
Stars: ✭ 467 (-24.56%)
Mutual labels:  ci, continuous-integration

PHP Censor Travis CI Codecov Latest Version Total downloads License

PHP Censor

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.0 release-1.3 Old stable version (ONLY FIXES) >=5.6, <8.0
2.0 (Rick Sanchez) 2.0.0 release-2.0 Current stable version >=7.4
2.1 WIP master Feature minor version (WIP) >=7.4

Dashboard

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, HipChat and Telegram;

  • Use your LDAP-server for authentication;

Changelog

Versions changelog.

Roadmap

See milestones.

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 an empty database for your application (MySQL/MariaDB or PostgreSQL);

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

# For Debian-based
aptitude install beanstalkd
  • 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-pgsql-sslmode=prefer \
    --db-name=php-censor \
    --db-user=php-censor \
    --db-password=php-censor \
    --db-port=default \ # Value 'default': 5432 for PostgreSQL and 3306 for MySQL
    --admin-name=admin \
    --admin-password=admin \
    --admin-email='[email protected]' \
    --queue-host=localhost \
    --queue-port=11300 \
    --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='[email protected]'

Installing via Docker

If you want to install PHP Censor as a 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 the repository by Git (If you want the latest master branch):

    git checkout master
    git pull -r
    

    Or pull the 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 <[email protected]>
    ...
    sudo systemctl restart <[email protected]>
    

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: [email protected]

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 a new migration:

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

Tests

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 'test_db' 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.xml[.dist] config constants). If connection failed the tests will be skipped.

Documentation

Full PHP Censor documentation.

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].