web-dev-qa-db-ja.com

Travis CI:カスタマイズされた環境変数で失敗を許可するにはどうすればよいですか?

この回答 に続いて、私はこの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

しかし、それでも他の方法が機能しない理由がわかりません。

24
Ivan Gabriele

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
13
Walt Sorensen

この問題 によると、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バージョン)のキー。

1
Théo