この回答 に続いて、私はこのTravis構成ファイルを作成しました:
language: php
php:
- 5.3
- 5.4
- 5.5
- 5.6
- 7
- hhvm
- nightly
branches:
only:
- master
- /^\d+\.\d+\.\d+$/
matrix:
fast_finish: true
include:
- php: 5.3
env: deps="low"
- php: 5.5
env: SYMFONY_VERSION=2.3.*
- php: 5.5
env: SYMFONY_VERSION=2.4.*
- php: 5.5
env: SYMFONY_VERSION=2.5.*
- php: 5.5
env: SYMFONY_VERSION=2.6.*
- php: 5.5
env: SYMFONY_VERSION=2.7.*
- php: 5.5
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
allow_failures:
- php: nightly
- env: TEST_GROUP=canFail
before_script:
- composer self-update
- if [ "$SYMFONY_VERSION" != "" ]; then composer require --dev --no-update symfony/symfony=$SYMFONY_VERSION; fi
- if [ "$deps" = "low" ]; then composer update --prefer-lowest; fi
- if [ "$deps" != "low" ]; then composer update --prefer-source; fi
script: phpunit
ただし、Travis CIは、phpナイトリーバージョンのみを「失敗を許可された」バージョンとしてカウントします。環境変数を間違った方法で使用していますか?
[〜#〜]更新[〜#〜]
正確に言えば、次のような環境を直接記述できることを私は知っています。
matrix:
include:
- php: 5.5
env: SYMFONY_VERSION=2.8.*@dev
allow_failures:
- env: SYMFONY_VERSION=2.8.*@dev
しかし、それでも他の方法が機能しない理由がわかりません。
allow_failures:
で指定するのは、許可される失敗です
残念ながら、マトリックスが最初のコードセットを読み取る方法は、環境をナイトリーの一部として使用する「失敗を許可された」バージョンと同じようにphpナイトリーバージョンであると思います。
Travisが失敗を許可する方法のため、完全に一致する必要があります。許可される失敗としてenv:
を指定するだけではなく、失敗として許可するenv:
を使用して各phpバージョンに指定する必要があります。例
allow_failures:
- php: 5.3
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: 5.4
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: 5.5
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: 5.6
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: 7.0
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: hhvm
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
- php: nightly # Allow all tests to fail for nightly
この問題 によると、php
キーとenv
キーは完全に一致する必要があります。 env
は単一の値または配列のいずれかですが、どちらの場合も完全に一致する必要があります。したがって、ビルドが必要な場合:
- php: 5.5
env: SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
失敗を許可するには、env
キー全体SYMFONY_VERSION=2.8.*@dev TEST_GROUP=canFail
とenvキー全体およびPHPバージョン(同じenvを使用している場合)を指定する必要があります。異なるPHPバージョン)のキー。