erp-mgroen / php-censor
PHP Censor 是一个开源的自托管持续集成服务器,用于PHP项目(PHPCI分支)。
Requires
- php: >=5.6.0
- ext-curl: *
- ext-json: *
- ext-openssl: *
- ext-pdo: *
- ext-xml: *
- block8/php-docblock-checker: 1.3.*
- bower-asset/admin-lte: 2.3.*
- bower-asset/font-awesome: 4.7.*
- bower-asset/ionicons: 2.0.*
- bower-asset/raphael: 2.2.*
- codeception/codeception: 2.3.*
- doctrine/instantiator: 1.0.*
- guzzlehttp/guzzle: 6.2.*
- jakub-onderka/php-parallel-lint: 0.9.*
- mnsami/composer-custom-directory-installer: 1.1.*
- monolog/monolog: 1.22.*
- npm-asset/codemirror: 5.23.*
- npm-asset/sprintf-js: 1.0.*
- pda/pheanstalk: 3.1.*
- phploc/phploc: 4.0.*
- phpmd/phpmd: 2.6.*
- phpunit/php-token-stream: 1.4.*
- phpunit/phpunit: 5.7.*
- pimple/pimple: 3.0.*
- psr/log: 1.0.*
- robmorgan/phinx: 0.8.*
- sebastian/phpcpd: 2.0.*
- sensiolabs/ansi-to-html: 1.1.*
- sensiolabs/security-checker: 4.0.*
- squizlabs/php_codesniffer: 2.8.*
- swiftmailer/swiftmailer: 5.4.*
- symfony/console: 3.3.*
- symfony/yaml: 3.3.*
Suggests
- hipchat/hipchat-php: For HipchatNotify plugin
- maknz/slack: For SlackNotify plugin
- mremi/flowdock: For FlowdockNotify plugin
This package is auto-updated.
Last update: 2024-09-06 09:37:47 UTC
README
PHP Censor 是一个开源的自托管持续集成服务器,用于PHP项目(PHPCI分支)。
更多截图。
系统需求
-
类Unix操作系统(Windows不支持);
-
PHP 5.6+(带有OpenSSL支持和启用的函数:
exec()
、shell_exec()
和proc_open()
); -
Web服务器(Nginx或Apache2);
-
数据库(MySQL/MariaDB或PostgreSQL);
-
Beanstalkd队列(可选);
功能
-
从Github、Bitbucket、Gitlab、Git、Mercurial、SVN或本地目录克隆项目;
-
为PostgreSQL、MySQL或SQLite设置数据库测试;
-
安装Composer依赖项;
-
运行PHPUnit、Atoum、Behat、Codeception和PHPSpec的测试;
-
通过Lint、PHPParallelLint、Pdepend、PHPCodeSniffer、PHPCpd、PHPCsFixer、PHPDocblockChecker、PHPLoc、PHPMessDetect、PHPTalLint和TechnicalDept检查代码;
-
运行其他任何支持的插件组合,包括Campfire、CleanBuild、CopyBuild、Deployer、Env、Git、Grunt、Gulp、PackageBuild、Phar、Phing、Shell和Wipe;
-
通过Email、XMPP、Slack、IRC、Flowdock、HipChat和Telegram发送通知;
-
使用您的LDAP服务器进行身份验证;
安装
- 转到您想安装PHP Censor的目录,例如:
/var/www
;
cd /var/www
- 通过Composer创建项目;
composer create-project php-censor/php-censor php-censor.local --keep-vcs
或从Github下载最新存档,解压并运行composer install
。
-
为应用程序创建空数据库(MySQL/MariaDB或PostgreSQL);
-
安装Beanstalkd队列(可选,如果您打算使用带有Worker的队列)
aptitude install beanstalkd # For deb-based
- 安装PHP Censor本身
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'
-
向您的Web服务器添加虚拟主机,指向新PHP Censor目录中的
public
目录。您需要设置重写规则,以便将所有不存在的请求指向PHP Censor; -
设置PHP Censor Worker(需要配置队列)或cron作业以运行PHP Censor构建;
通过Docker安装
如果您想将PHP Censor作为Docker容器安装,可以使用php-censor/docker-php-censor项目。
更新
-
转到您的PHP Censor目录(例如:
/var/www/php-censor.local
)cd /var/www/php-censor.local
-
通过Git从仓库拉取最新代码(如果您想获取最新的
master
分支)git checkout master git pull -r
或拉取最新版本
git fetch git checkout <version>
-
更新Composer依赖项:
composer install
-
更新数据库模式
./bin/console php-censor-migrations:migrate
-
重启Supervisord工作进程(如果您使用工作进程和Supervisord)
sudo supervisorctl status sudo supervisorctl restart <worker:worker_00> ... sudo supervisorctl restart <worker:worker_nn>
或重启Systemd工作进程(如果您使用工作进程和Systemd)
sudo systemctl restart <worker@1.service> ... sudo systemctl restart <worker@n.service>
配置项目
设置项目有多种方法
-
添加没有项目配置的项目(运行“零配置”插件,包括:Composer、TechnicalDept、PHPLoc、PHPCpd、PHPCodeSniffer、PHPMessDetect、PHPDocblockChecker、PHPParallelLint、PHPUnit 和 Codeception);
-
类似于 Travis CI,为了在项目中支持 PHP Censor,您只需将一个
.php-censor.yml
(与 PHPCI 兼容的phpci.yml
或.phpci.yml
)文件添加到您的仓库根目录; -
在 PHP Censor 的项目页面中添加项目配置(这将取消项目仓库中的文件配置);
项目配置应该看起来像这样
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
有关配置项目的更多详细信息。
迁移
运行以应用最新的迁移
cd /path/to/php-censor
./bin/console php-censor-migrations:migrate
运行以创建新的迁移
cd /path/to/php-censor
./bin/console php-censor-migrations:create NewMigrationName
测试
cd /path/to/php-censor # For testing on MySQL DB ./vendor/bin/phpunit --configuration ./phpunit.mysql.xml # For testing on PostgreSQL ./vendor/bin/phpunit --configuration ./phpunit.pgsql.xml
对于 Phar 插件测试,请在 php.ini
配置中将 'phar.readonly' 设置为 Off(0)。否则,测试将被跳过。
对于 B8Framework 数据库测试,请在 'localhost' 上为 MySQL 创建一个空的 'b8_test' 数据库,用户/密码为:root/<empty>'
,或为 PostgreSQL 创建一个空的 'b8_test' 数据库,用户/密码为:postgres/<empty>'
(您可以在 phpunit.mysql|pgsql.xml
配置中更改默认测试用户、密码和数据库名称)。如果连接失败,测试将被跳过。
文档
许可证
PHP Censor 是开源软件,采用 BSD-2-Clause 许可协议。