LoginSignup
6
5

More than 5 years have passed since last update.

Codecov and CircleCI Orbs: Making Code Coverage Easy starts in 1 hour

Last updated at Posted at 2019-01-20

数日前にCircleCIの中の人とCodecovの中の人によるWebinarがありました。

社内にを共有するために、webinarと自分の知識をざっとまとめただけのものです。

アジェンダ

  • 紹介
  • CircleCI Orbsの紹介
  • Codecovの紹介
  • Codecov + CricleCI Orbs
  • Q&A

CircleCI Orbsとは

orbs は名詞であり、CircleCIの設定の再利用・共有可能と言った意味
CircleCI Orbs はCircleCIで書いたパイプライン自動化処理(CI・CD)設定を世界に共有できる仕組み

時代背景

Github

ソースコードを世界に共有する仕組み

DockerHub

アプリケーションの構成環境を世界に共有する仕組み

CircleCI Orbs <= new

CircleCI上で動作するCI・CDの仕組みを世界に共有する仕組み

まとめ

別プロジェクトでは、テスト環境への自動デプロイや、本番環境へ納品ファイルの自動作成・アプリケーションの自動テストやソースコードの自動品質チェックなどの具体的な仕組みを世界に共有することができる。
逆に、データ統合処理のCI設定・AIプログラムの自動配備方法など、別分野のやり方は違うエンジニアが上げてくれればとても参考にできる。

CodeCovとは

年間数千万のカバレッジレポートがアップロードされる、コードカバレッジツールのリーディング企業。
アップロードされたカバレッジレポートを専用の管理画面でコードのテスト状況を視覚的に確認することができる

コードカバレッジとは

コードの品質を図る一つの指標。
テストされているコードの網羅率をを静的に解析することで、網羅率90%以上をめざす。Nuxtは一時期100%をキープしてました。

実際は、網羅率はチームごとに設定します

Nuxtのカバレッジレポート

カバレッジの推移

カバレッジ

ファイル別カバレッジ率

ファイル別カバレッジ率

CodeCov & CircleCI

CircleCi Orbsを使用して、CodeCovにレポートを自動でアップロードするデモが始まります。まとめると、

CodeCovのorbs元ファイルが以下の形で用意されており

version: 2.1

description: Upload your coverage reports to Codecov without dealing with complex configurations.  This orb helps you get coverage results quickly so that you can breathe easier and commit your code with confidence.

commands:
  upload:
    parameters:
      conf:
        description: Used to specify the location of the .codecov.yml config file
        type: string
        default: ".codecov.yml"
      file:
        description: Path to the code coverage data file to upload.
        type: string
      flags:
        description: Flag the upload to group coverage metrics (e.g. unittests | integration | ui,chrome)
        type: string
        default: ""
      token:
        description: Set the private repository token (defaults to environment variable $CODECOV_TOKEN)
        type: string
        default: ${CODECOV_TOKEN}
      upload_name:
        description: Custom defined name of the upload. Visible in Codecov UI
        type: string
        default: ${CIRCLE_BUILD_NUM}
    steps:
      - run:
          name: Upload Coverage Results
          command: |
            bash <(curl -s https://codecov.io/bash) \
              -f << parameters.file >> \
              -n << parameters.upload_name >> \
              -t << parameters.token >> \
              -y << parameters.conf >> \
              -F << parameters.flags >> \

CircleCiの設定ファイルの方でcodecov orbsファイルを指定し、対象のカバレッジファイルを指定すると完了です。CodeCovへレポートをアップロードする際はトークンが必要になりますが、CircleCIの環境変数の方に、CODECOV_TOKEN を設定すれば解決します。


version: 2.1
orbs:
  codecov: codecov/codecov@1.0.2
jobs:
  build:
    steps:
      - codecov/upload:
          file: coverage.xml
          flags: backend
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5