techpivot / phalcon-ci-installer
为PHP应用程序提供Composer集成,以便在PHP运行时将Phalcon框架作为扩展安装,适用于包括TravisCI、CircleCI、Scrutinizer、Shippable和Codeship在内的各种托管CI服务。
Requires
- php: ^5.4|^5.5|^5.6|^7.0
- phalcon/zephir: ^0.9.6
Requires (Dev)
- phpunit/phpunit: ~3.7
README
为PHP应用程序提供Composer集成,以便将Phalcon框架作为扩展安装在PHP运行时,适用于包括CircleCI、Travis CI、Scrutinizer、Codeship和Shippable在内的各种托管CI服务。
功能
- 在PHP运行时加载Phalcon扩展
- 原生缓存支持,防止从源代码重新构建Phalcon
- 自动检测最新标记的Phalcon版本
- 安装特定版本的Phalcon、标记和发布版本 (自1.0.2起)
- 支持PHP7和Phalcon 3.0.x (自1.0.4起)
版本兼容性
以下表格概述了Phalcon在各种CI环境中的通用兼容性。
安装
- 将
techpivot/phalcon-ci-installer
存储库添加到您的composer.json
文件中的require-dev部分,如下所示
"require-dev": { "techpivot/phalcon-ci-installer": "~1.0" }
- 更新您的CI脚本,在相关部分中执行
vendor/bin/install-phalcon.sh
安装程序。请参阅以下各种CI提供商的示例。
选项
安装程序接受一个可选参数,可以用来指定特定的分支或标记。
示例
# Install latest version from default branch vendor/bin/install-phalcon.sh # Install latest revision from branch "3.0.x" vendor/bin/install-phalcon.sh 3.0.x # Install specific release tag "phalcon-v2.0.9" vendor/bin/install-phalcon.sh phalcon-v2.0.9
注意:Phalcon CI安装程序旨在缓存与Phalcon/PHP版本对应的二进制文件。指定发布或标记版本将带来最佳性能,因为后续构建(取决于CI容器/设置)将被缓存。从分支构建(包括默认的master选项)将导致安装程序检测到的新版本尚未缓存时,每次都会重新构建Phalcon。
CI环境
CircleCI
circle.yml
machine: php: version: 5.6.14 dependencies: cache_directories: - vendor - ~/cphalcon post: - vendor/bin/install-phalcon.sh phalcon-v2.0.13 test: override: - vendor/bin/phpunit
注意:为了缓存数据以提高构建速度,请确保指定了上面概述的
cache_directories
指令。
注意:请确保在
post
阶段执行vendor/bin/circleci-install-phalcon.sh
,这将允许在安装过程中包含techpivot/phalcon-ci-installer
存储库。
参考:CircleCI PHP版本 – Ubuntu 14.04 • Ubuntu 12.04
Travis CI
.travis.yml
language: php php: - 5.5 - 5.6 - 7.0 cache: directories: - vendor - ~/.composer/cache - ~/cphalcon before_install: - composer install --prefer-source --no-interaction - vendor/bin/install-phalcon.sh 3.0.x script: - vendor/bin/phpunit notifications: email: false
注意:可以指定多个PHP版本,并且每个版本都将独立缓存;但是,对于所有构建,都将应用phalcon目标引用(分支或标记)。
Scrutinizer
.scrutinizer.yml
build: environment: php: version: 7.0.8 cache: directories: - ~/cphalcon dependencies: override: - composer install --prefer-source --no-interaction after: - vendor/bin/install-phalcon.sh 3.0.x
注意:无需包含
vendor/
缓存目录,因为它会自动缓存。
Codeship
示例 设置命令
phpenv local 5.6
php --version
composer install --prefer-source --no-interaction
vendor/bin/install-phalcon.sh
Shippable
shippable.yml
language: php php: - 7.0 build: cache: true cache_dir_list: - $SHIPPABLE_BUILD_DIR/vendor - ~/cphalcon ci: - composer install --prefer-source --no-interaction - bin/install-phalcon.sh 3.0.x