web-dev-qa-db-ja.com

GitHubでCoverallsとTravisを接続するにはどうすればよいですか?

私は現在、公開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を作成してみました。

10
Greg

どうすればこれを設定できますか?

ステップ1-カバーオールを有効にする

最初に行うことは、リポジトリでCoverallsを有効にすることです。

あなたは彼らのウェブサイトでそれをすることができます http://coveralls.io

  • http://coveralls.io に移動します
  • gitHubの資格情報を使用してサインインします
  • 「リポジトリ」をクリックしてから、「リポジトリの追加」をクリックします
    • リポジトリがまだリストされていない場合は、「SyncGitHubRepos」
  • 最後に、「カバーオールを有効にする」スイッチを「オン」に切り替えます

enter image description here

ステップ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ファイルは、次の場合にのみ必要です。

  • coverallsはAPIを介して(アクセストークン交換を介して)情報を取得できるため、パブリックTravis-CIリポジトリはこの構成ファイルを必要としません。
  • repo_token(Coverallsのリポジトリページにあります)はプライベートリポジトリにのみ必要であり、秘密にしておく必要があります。あなたがそれを公開すれば、誰でもあなたのリポジトリのカバレッジデータを提出することができます。

要約すると、次の2つの場合にのみファイルが必要になります。

  • カバレッジデータを含むファイルにカスタムの場所を指定するには
  • または、Travis-Proとプライベートリポジトリを使用している場合。次に、「travis-pro」を構成してトークンを追加する必要があります。

    service_name: travis-pro
    repo_token: ...
    
17
Jens A. Koch

質問は基本的にCoverallsがサポートするすべての言語(Luaだけでなく)に当てはまるので、これをPHP用に設定する方法を説明することが役立つかもしれないと思いました。

Travis-CIのWebサイトの PHPリンクを指しているため、このプロセスはPHPの場合は特にわかりにくいです。 Coverallsのサイト のパスワードで保護されたページ。メインのCoverallsサイトとは異なり、GitHubを使用してログインする手段を提供しません。

同様に紛らわしいのは、 primary PHP Coverallsのサイトのページ には、atoum/atoum(これは機能していないように見えます)、完全ではありません。

最終的に私にとって完璧に機能したのは https://github.com/php-coveralls/php-coveralls/ です。ドキュメントは非常に徹底的ですが、要約すると次のようになります。

  1. リポジトリのカバーオールを有効にします(承認済み回答のステップ1を参照)。

  2. xdebugがインストールされ、Travis-CIビルド環境内のPHP)で有効になっていることを確認します(デフォルトであるはずです)。これは、PHPUnitでのコードカバレッジサポートに必要です。

  3. Composerを使用してプロジェクトにphpunitおよびphp-coverallsライブラリを追加します。

composer require phpunit/phpunit php-coveralls/php-coveralls
  1. プロジェクトのルートにある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
  1. プロジェクトのルートに.coveralls.ymlを作成し、次のデータを入力します。
service_name: travis-ci

このステップが必要であるとは確信していませんパブリックリポジトリの場合(承認された回答はそうではないことを意味します)が、php-coverallsドキュメントはこのディレクティブについて述べています(私の強調):

service_name:ビルドに関する追加情報を見つけるためにCoverallsが探す場所を指定できます。これは任意の文字列にすることができますただし、travis-ciまたはtravis-proを使用しますCoverallsがブランチデータをフェッチしたり、プルリクエストにコメントしたりできるようにします

  1. 上記の変更をGitHubのリモートリポジトリにプッシュし、Travis-CIビルドをトリガーします(自動的に実行するためのフックがまだない場合)。

  2. README(または他の好きな場所)でCoverallsコードカバレッジバッジを叩きます。必要なマークアップは、問題のリポジトリのカバーオールページの[バッジ]列にあります。

0
Ben Johnson