我想在Travis CI上有两个PHP 7.2机器实例-一个实例安装了bcmath,另一个实例没有安装。
我的.travis.yml文件如下:
language: php
matrix:
fast_finish: true
allow_failures:
- php: nightly
include:
- php: 5.4
- php: 5.5
- php: 5.6
- php: 7.0
- php: 7.1
- php: 7.2
- php: 7.3
env:
- TEST_COVERAGE=true
- php: nightly
- php: hhvm
那么我是否要在.travis.yml中添加另一行- php: 7.2
呢?
每个https://docs.travis-ci.com/user/languages/php/都可以添加扩展名:
before_install: echo "extension = <extension>.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
因此,有理由将以下内容删除它们就足够了:
before_install: sed -i 's/extension = bcmath.so/#extension = bcmath.so/g' ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
我什至可以像这样针对特定版本(未经测试)
before_install: if [ '$TRAVIS_PHP_VERSION' = '7.2' ]; then sed -i 's/extension = bcmath.so/#extension = bcmath.so/g' ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini ; fi
但是,没有什么可以让我得到两台PHP 7.2机器-我可以使用这些行来拥有一种类型或另一种类型的VM,但不能同时使用两种类型。
有什么想法吗?
答案 0 :(得分:1)
您可以在jobs
中使用matrix
代替.travis.yml
-请参见Build-Stages。要删除bcmath
函数(这些函数已在travis上预编译为PHP),则必须自己使用附加选项进行编译:
language: php
jobs:
include:
- &STANDARD_TEST_JOB
stage: Test
php: 7.2
env: BCMATH="on"
before_install:
- |
if [[ $BCMATH != "on" ]]; then
export PHP_BUILD_CONFIGURE_OPTS="--disable-bcmath";
git clone git://github.com/php-build/php-build.git $HOME/.phpenv/plugins/php-build;
travis_wait phpenv install 7.2.19;
phpenv rehash;
phpenv global 7.2.19;
fi
php -v;
php -m;
-
<<: *STANDARD_TEST_JOB
php: 7.2
env: BCMATH="off"