私は現在、公開GitHubリポジトリのPRに基づいてTravisCIを構築しています。 Coverallsの説明では、これを.coveralls.ymlファイルに入れるように指示されています。
service_name: travis-pro
repo_token: <my_token>
.coveralls.ymlファイルが公開されるため(GitHubにチェックインされるため)、これは機能しません。私のTravisCIは、ブランチに接続されたGitHubリポジトリに統合され、PRで起動します。
だから私はこれを試しました:
TravisCIのサイトで、環境変数を設定しました。
COVERALLS_REPO_TOKENをトークンの値に変更します。
次に、私の.travis.ymlを次のように変更しました。
language: scala
scala:
- 2.11.7
notifications:
email:
recipients:
- me@my_email.com
jdk:
- oraclejdk8
script: "sbt clean coverage test"
after_success: "sbt coverageReport coveralls"
script:
- sbt clean coverage test coverageReport &&
sbt coverageAggregate
after_success:
- sbt coveralls
ブランチでPRを作成すると、これは正常に実行されます。エラーは発生せず、カバレッジテストが実行されてファイルが生成されたというTravisのコンソールの出力が表示されます。しかし、Coverallsに行くと、何も表示されません。「このリポジトリのビルドはありません。」
どうすればこれを設定できますか?
編集:悲しいことに、service_name: travis-ci
サイコロなしで.coveralls.ymlを作成してみました。
どうすればこれを設定できますか?
ステップ1-カバーオールを有効にする
最初に行うことは、リポジトリでCoverallsを有効にすることです。
あなたは彼らのウェブサイトでそれをすることができます http://coveralls.io :
ステップ2-カバレッジ情報をカバーオールにプッシュするようにTravis-CIをセットアップします
.travis.yml
ファイルには、script
セクションとafter_success
セクションの複数のエントリが含まれています。それで、それを少しクリーンアップしましょう:
language: scala
scala: 2.11.7
jdk: oraclejdk8
script: "sbt clean coverage test"
after_success: "sbt coveralls"
notifications:
email:
recipients:
- me@my_email.com
これで、プッシュすると、スクリプトセクションのコマンドが実行されます。これは、カバレッジデータが生成されたものです。
コマンドが正常に終了すると、after_successセクションが実行されます。これは、カバレッジデータがカバーオールにプッシュされたものです。
.coveralls
設定ファイル
.coveralls
ファイルは、次の場合にのみ必要です。
repo_token
(Coverallsのリポジトリページにあります)はプライベートリポジトリにのみ必要であり、秘密にしておく必要があります。あなたがそれを公開すれば、誰でもあなたのリポジトリのカバレッジデータを提出することができます。要約すると、次の2つの場合にのみファイルが必要になります。
または、Travis-Proとプライベートリポジトリを使用している場合。次に、「travis-pro」を構成してトークンを追加する必要があります。
service_name: travis-pro
repo_token: ...
質問は基本的にCoverallsがサポートするすべての言語(Luaだけでなく)に当てはまるので、これをPHP用に設定する方法を説明することが役立つかもしれないと思いました。
Travis-CIのWebサイトの PHPリンク が を指しているため、このプロセスはPHPの場合は特にわかりにくいです。 Coverallsのサイト のパスワードで保護されたページ。メインのCoverallsサイトとは異なり、GitHubを使用してログインする手段を提供しません。
同様に紛らわしいのは、 primary PHP Coverallsのサイトのページ には、atoum/atoum
(これは機能していないように見えます)、完全ではありません。
最終的に私にとって完璧に機能したのは https://github.com/php-coveralls/php-coveralls/ です。ドキュメントは非常に徹底的ですが、要約すると次のようになります。
リポジトリのカバーオールを有効にします(承認済み回答のステップ1を参照)。
xdebug
がインストールされ、Travis-CIビルド環境内のPHP)で有効になっていることを確認します(デフォルトであるはずです)。これは、PHPUnitでのコードカバレッジサポートに必要です。
Composerを使用してプロジェクトにphpunit
およびphp-coveralls
ライブラリを追加します。
composer require phpunit/phpunit php-coveralls/php-coveralls
travis.yml
を更新して、次のディレクティブを含めます。script:
- mkdir -p build/logs
- vendor/bin/phpunit tests --coverage-clover build/logs/clover.xml
after_success:
- travis_retry php vendor/bin/php-coveralls
.coveralls.yml
を作成し、次のデータを入力します。service_name: travis-ci
このステップが必要であるとは確信していませんパブリックリポジトリの場合(承認された回答はそうではないことを意味します)が、php-coveralls
ドキュメントはこのディレクティブについて述べています(私の強調):
service_name
:ビルドに関する追加情報を見つけるためにCoverallsが探す場所を指定できます。これは任意の文字列にすることができますただし、travis-ciまたはtravis-proを使用しますCoverallsがブランチデータをフェッチしたり、プルリクエストにコメントしたりできるようにします。
上記の変更をGitHubのリモートリポジトリにプッシュし、Travis-CIビルドをトリガーします(自動的に実行するためのフックがまだない場合)。
README
(または他の好きな場所)でCoverallsコードカバレッジバッジを叩きます。必要なマークアップは、問題のリポジトリのカバーオールページの[バッジ]列にあります。