.travis.yml
構成ファイルbefore_install
、install
、before_script
および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 を参照してください。
違いは、何かがうまくいかないときのジョブの状態です。
Git 2.17(2018年第2四半期)は、 commit 3c93b82 (2018年1月8日)で SZEDERGábor(szeder
) であることを示しています。
( ジュニオC浜野-gitster
- in commit c710d18 、2018年3月8日)
これは、before_install
、install
、before_script
およびscript
オプションの実際の違いを示しています
travis-ci
: 'script
'フェーズでGitをビルドしますTravis CIでGitの構築とテストを開始してから( 522354d :Travis CIサポートを追加、2015-11-27、Git v2.7.0-rc0)、「
before_script
」フェーズでGitを構築し、 'script
'フェーズでテストスイートを実行します(後で導入された 'script
'フェーズでビルドする32ビットLinuxおよびWindowsビルドジョブを除く)。反対に、Travis CIのプラクティスは、「
script
」フェーズでビルドおよびテストすることです。実際、C/C++プロジェクトの 'script
'フェーズ用のTravis CIのデフォルトのビルドコマンドは次のとおりです。./configure && make && make test
Travis CIがこのように処理する理由と、それが私たちよりも優れたアプローチである理由は、失敗したビルドジョブがどのように分類されるかにあります。ビルドジョブで問題が発生した後、その状態は次のようになります。
'failed'、 '
script
'フェーズのコマンドがエラーを返した場合。
これは、Travis CI Webインターフェースの赤い「X」で示されます。'errored'、 '
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
」でも何も実行されないため、これらのオーバーライドディレクティブも削除します。
Travis CIのビルドは、2つのステップで構成されています。
install
:必要な依存関係をインストールしますscript
:ビルドスクリプトを実行しますインストール手順の前にカスタムコマンドを実行できます(before_install
)、およびその前(before_script
)または後(after_script
)スクリプトステップ。
before_install
ステップでは、Ubuntuパッケージやカスタムサービスなど、プロジェクトに必要な追加の依存関係をインストールできます。
続きを読む こちら