CircleCI2.0+php-coverallsでカバレッジのバッジを表示する
CircleCI2.0+php-coverallsでカバレッジのバッジを生成しようとしたところ、Coverallsの説明が古かったりphp-coverallsの説明が微妙だったりして途中ハマったので、バッジを表示されるまでに行った手順を備忘録として残します。
1. coverallsに登録
カバレッジのバッジを表示するためにcoveralls を利用します。
ログインして ADD REPO メニューから対象とするリポジトリを有効にします。有効にしたあとDETAILSボタンよりCoverallsのセットアップ画面に遷移します。
PHPリポジトリの場合はPHPの場合のcoverallsの設定方法が記載されたページが表示されますが、TravisCIでの設定方法しかありません。
CircleCIの場合はドキュメントを読む必要があります。
CoverallsのPHPの設定方法のページ を見るとphp-coverallsのREADMEを読めとありますので php-coverallsのREADME を読みましょう。
Coverallsの説明はちと不十分…
2. php-coverallsのインストール
READMEのとおり、まずはcomposerでphp-coverallsをインストールします。
$ composer require php-coveralls/php-coveralls
3. phpunit.xmlまたはphpunit.xml.distにカバレッジのためのログを取得するための記述を追加
<logging>
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
4. CircleCIの設定ファイルの修正を行う
READMEによると、CiecleCIの設定ファイルにカバレッジのログを追加するための記載を追加しなければいけないのだけれど、設定ファイルの例がCircleCIの1系の記載になっているので、CircleCI2.0以降の場合は以下のようにする必要があります。
# PHP CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-php/ for more details
#
version: 2
jobs:
build:
docker:
# specify the version you desire here
- image: circleci/php:latest
# Specify service dependencies here if necessary
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/mysql:9.4
working_directory: ~/repo
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run: mkdir -p build/logs # ★追加
- run: composer install -n --prefer-dist
- save_cache:
paths:
- ./vendor
key: v1-dependencies-{{ checksum "composer.json" }}
- run: vendor/bin/phpunit
- run: php vendor/bin/php-coveralls # ★追加
- run: mkdir -p build/logs
と - run: php vendor/bin/php-coveralls
を.circleci/config.yml
に追加します。
READMEには後者が載っていませんが必要ですのでしっかり記載します。
5. CircleCIの環境変数にcoverallsのトークンを追加
CircleCIにログインし、CIしたいプロジェクトのSettingsのEnvironment Variablesメニューより「Add Variable」ボタンから環境変数COVERALLS_REPO_TOKEN
を追加します。
値はcoverallsのページに表示されていたrepo_tokenの値を設定しておきます。
6. .coveralls.ymlを以下のように記載
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json
記載した.coveralls.yml
をリポジトリ直下に配置します。
7. ファイルをpushしてCircleCIでビルドを走らせる
ビルドが通れば、Coverallsのリポジトリのページが更新されます。
ページにカバレッジバッジが表示されれば、バッジの生成は正常に動作しています。
このようにバッジが表示されればOKです。
それではバッジをあなたのREADMEに貼って快適なOSSライフを!
Author And Source
この問題について(CircleCI2.0+php-coverallsでカバレッジのバッジを表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/pinekta/items/d1a286551a71441075c1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .