内部の.travis.yml
間の実用的な違いは何か設定ファイルbefore_install
、install
、before_script
およびscript
オプション?
これらのオプションの違いを説明するドキュメントは見つかりませんでした。
内部の.travis.yml
間の実用的な違いは何か設定ファイルbefore_install
、install
、before_script
およびscript
オプション?
これらのオプションの違いを説明するドキュメントは見つかりませんでした。
before_install
、install
とbefore_script
。
回答:
これらのセクションを使用する必要はありませんが、使用する場合は、実行していることの意図を伝えます。
before_install:
# execute all of the commands which need to be executed
# before installing dependencies
- composer self-update
- composer validate
install:
# install all of the dependencies you need here
- composer install --prefer-dist
before_script:
# execute all of the commands which need to be executed
# before running actual tests
- mysql -u root -e 'CREATE DATABASE test'
- bin/doctrine-migrations migrations:migrate
script:
# execute all of the commands which
# should make the build pass or fail
- vendor/bin/phpunit
- vendor/bin/php-cs-fixer fix --verbose --diff --dry-run
たとえば、https://github.com/localheinz/composer-normalize/blob/0.8.0/.travis.ymlを参照してください。
docker build
コマンドがbefore_install
ステップに入れられる理由がまだわかりません。それはinstall
歩調を合わせるべきではありませんか?
docker build
、テスト環境のセットアップに使用されます-依存関係をインストールする前に必要な場合は、これをbefore_install
セクションに移動するのが理にかなっています。そうでない場合は、before_script
セクションがより適切になります。docs.travis-ci.com/user/languages/ruby/#Bundlerを見ると、依存関係をインストールするためにdockerは必要ないはずだと理解しています。
違いは、何かがうまくいかないときの仕事の状態にあります。
Gitの2.17(Q2 2018)には、ことを示して3c93b82コミットすることにより(2018年1月8日)(SZEDERガーボルをszeder
)。
(による合併Junio C浜野- gitster
-でc710d18をコミットし、2018年3月8日)
すなわち間の実用的な違いを示しbefore_install
、install
、before_script
及びscript
オプション
travis-ci
: 'script
'フェーズでGitをビルドする我々はトラヴィスCI上のGitを構築し、テストを開始して以来(522354d:、トラヴィスCIのサポートを追加2015年11月27日、Gitのv2.7.0-RC0)、私たちは「中にGitを構築
before_script
」相とでテストスイートを実行します「script
」フェーズ(後で導入された32ビットのLinuxおよびWindowsビルドジョブを除き、 'script
'フェーズ 'でビルドします)。逆に、Travis CIのプラクティスは、 '
script
'フェーズでビルドおよびテストすることです。実際script
、C / C ++プロジェクトの ' 'フェーズに対するTravisCIのデフォルトのビルドコマンドは次のとおりです。./configure && make && make test
Travis CIがこのように行う理由と、それが私たちよりも優れたアプローチである理由は、失敗したビルドジョブがどのように分類されるかにあります。ビルドジョブで問題が発生した後、その状態は次のようになります。
'
script
'フェーズのコマンドがエラーを返した場合、'失敗しました' 。
これは、Travis CIWebインターフェース上で赤い「X」で示されます。'エラー'、 '
before_install
'、 'install
'、または 'before_script
'フェーズのコマンドがエラーを返した場合、またはビルドジョブが制限時間を超えた場合。
これは赤い「!」として表示されます Webインターフェイス上。これにより、Travis CI Webインターフェースを見る人間と、Travis CI APIを照会する自動ツールの両方で、ビルドの失敗が人間の注意を必要とする責任である場合、つまり、コンパイラーが原因でビルドジョブが「失敗した」場合を簡単に判断できます。エラーまたはテストの失敗、およびそれが制御できない何かによって引き起こされ、ビルドジョブを再起動することで修正される可能性がある場合。たとえば、一時的なネットワークエラーのために依存関係をインストールできなかったためにビルドジョブが「エラー」になった場合、またはOSXビルドジョブが制限時間を超えました。
'
before_script
'フェーズでGitをビルドすることの欠点は、'エラーが発生したすべての'ビルドジョブのトレースログもチェックして、コンパイラエラーが原因である可能性があるため、エラーの原因を確認する必要があることです。
これには、Webインターフェイスでの追加のクリックとページの読み込み、および自動化ツールでの追加の複雑さとAPIリクエストが必要です。したがって、ビルドGitを '
before_script
'フェーズから' 'フェーズに移動し、script
それに応じてスクリプトの名前も更新します。
'ci/run-builds.sh
'は基本的に空になりますので、削除してください。
ビルドジョブ構成のいくつかは、デフォルトの 'before_script
'をオーバーライドして何もしません。この変更により、デフォルトの 'before_script
'も何も実行されないため、これらのオーバーライドするディレクティブも削除します。