GitHub Actions 練習中 ( AltCover でカバレッジ測定 ) | あさぼんの3Dプリンタ奮闘記

あさぼんの3Dプリンタ奮闘記

40代のサラリーマンです。
3Dプリンタやプログラミングで苦労していることを書いていこうと思います。

過去のブログ

PFD (Process Flow Diagram) を簡単に書きたい → アプリ作ってみた

で書きましたが、 Windows アプリを作って GitHub で公開しています。

asabon/PFD_Editor (github.com)

 

もともと「GitHubでいろいろ遊びたい」と思っていたのですが、ネタがなくて実現できませんでした。今回、ようやくネタ(らしきもの)ができたので、これができるようになりました。

 

ということで、このリポジトリを使っていろいろ試していきます。

 

まずは GitHub 上で CI 環境を構築してみたいと思いました。

 

以前は GitHub は CircleCI と連携して CI できるようにしていたのですが、

現在は(CircleCIも使えそうですが)GitHub Actions というのが使えるようになっています。

 

そのためこちらを使っていこうと思います。

「やりたいこと」はこんな感じです。

  1. 本線(master)ブランチに対して push あるいは pull request したときに以下を実施
    1. ビルド(Debug/Release)が失敗しないかをチェック
    2. ユニットテストが全部パスするかをチェック
    3. ユニットテスト実行時のコードカバレッジを取得して見やすく表示
  2. リリース作業を行いたいときに、リリースパッケージの自動生成
まずは「1.」からやってみます。
(最後までたどり着けなかったらごめんなさい・・・)
 
とりあえず、本線を汚さないよう、作業用に、上記リポジトリ(asabon/PFD_Editor (github.com))に、「28-add-code-coverage」ブランチを作成しました。
 
今後はこのブランチに対して作業をおこなっていきます。
思い出しながら書いているので、細かい手順は忘れてしまいましたが、
GitHub Actions で「いつ、何を実行するのか」は ".github/workflows" 以下に yml ファイルを作成して、こちらに記述していくことになります。
 
今回、
  • .github/workflows/
    • build.yml ( ビルド確認用 )
    • test.yml ( テスト&カバレッジ用 )
の2つのファイルを作成しています。 ( 2023/11/09 現在 )
内容は随時更新しているため、上記 GitHub のリポジトリを見てもらうのがよいと思います。
 
build.yml の方はググって得られた情報をもとに簡単に書けました。
内容は上記リポジトリを見てもらうのがよいと思います。
 
苦労しているのは test.yml の方です。
大きな流れは以下のような感じです。
  1. チェックアウト
  2. NuGet をセットアップ
  3. NuGet パッケージを復元
  4. MSBuild をセットアップ
  5. ビルドを実行 ( MSBuild )
  6. カバレッジツールを実行 ( AltCover )
  7. テストを実行 ( MSTest )
  8. カバレッジレポートを作成 ( ReportGenerator )
  9. レポートを保存する
カバレッジを取得し、結果を得るために 6. 8. を追加したのがポイントですが、手探りで試しているので、正しい手順かどうかはやや不安です。詳しい方がいたら教えていただけると嬉しいです。
 
とりあえず、結果がレポートとして生成されるところまでは到達できました。
目指すゴールまで、あとちょっとです。
 
GitHubのプロジェクトトップページにはこんな感じの「バッジ」でカバレッジを表現しているものがあります。これをやりたいのです。
上記 8. で、ReportGenerator 実行時のオプションに -reporttypes: に Badges を追加することで、この画像が生成されるところまではできたんですが、これをトップページに貼るところがまだわかっていません。
 
誰か、わかる方いたら教えてください・・・