プライベートリポジトリにCodecovを導入

はじめに

Codecovの導入手順をまとめます。 オープンソースなプロジェクトであれば無料ですが、プライベートリポジトリでも5ユーザまでであればFreeプランで無制限に使用できます。
以前はFreeプランで使用できるプライベートリポジトリは1つだけだったようですが、ありがたいことに最近料金プランが変わったみたいです。

blog.codecov.io

What is changing? Codecov is moving from per repository pricing to per user pricing: https://codecov.io/pricing.

For organizations with private repositories, Codecov is now free for the first 5 users, and all plans now include unlimited private repos.

Codecovでアカウント登録

サインアップページSign up with GitHub からアカウントを作成します。手順通り進めるだけなので省略します。

リポジトリの追加とトークンの取得

Add a repositoryを選択

f:id:hiroki-sawano:20200708212516p:plain

Codecovを導入するリポジトリを選択

f:id:hiroki-sawano:20200708212601p:plain

表示されるトークンをコピー

f:id:hiroki-sawano:20200708212825p:plain

GitHubリポジトリトークンを登録

Settings > Secrets > New secret から CODECOV_TOKEN という名前でコピーしたトークンを登録します。

f:id:hiroki-sawano:20200708213244p:plain

登録後は以下の通りSecretsが表示されます。

f:id:hiroki-sawano:20200708211242p:plain

GitHub Actionsのワークフローからカバレッジレポートをアップロード

Codecov GitHub Action を使用し、ワークフロー内で作成したカバレッジレポートをCodecovにアップロードします。

github.com

ワークフロー のYAMLファイルでビルド後(カバレッジレポート出力後)に以下のステップを追加するだけです。
Codecov GitHub Action は自動的にレポートファイルを検出してくれます。
全てのPRで実行したいのでトリガーに on.pull_request を設定しておきます。

name: build
on:
  push:
    branches: [ master ]
  pull_request:

jobs:
  build:
    runs-on: ...
    steps:
    # ~ビルドのステップは省略~
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v1
      with:
        token: ${{ secrets.CODECOV_TOKEN }}

これでPRを契機に以下の通りカバレッジレポートがCodecovにアップロードされます(JaCoCoのレポートで試してます)。

f:id:hiroki-sawano:20200708215206p:plain

アップロードが正常に終了すると、ボットがマージ先ブランチのカバレッジの変化をPRにコメントしてくれます。

f:id:hiroki-sawano:20200708215408p:plain

バッジをREADMEに追加

Codecovでリポジトリのページから Settings > Badge にアクセスするとリンクを取得できます。

f:id:hiroki-sawano:20200708220346p:plain

このリンクをREADMEのファイルに貼り付けることで以下のようにカバレッジ率を表示することができます。

f:id:hiroki-sawano:20200708220757p:plain