過去のブログ
「PFD (Process Flow Diagram) を簡単に書きたい → アプリ作ってみた」
で書きましたが、 Windows アプリを作って GitHub で公開しています。
asabon/PFD_Editor (github.com)
もともと「GitHubでいろいろ遊びたい」と思っていたのですが、ネタがなくて実現できませんでした。今回、ようやくネタ(らしきもの)ができたので、これができるようになりました。
ということで、このリポジトリを使っていろいろ試していきます。
まずは GitHub 上で CI 環境を構築してみたいと思いました。
以前は GitHub は CircleCI と連携して CI できるようにしていたのですが、
現在は(CircleCIも使えそうですが)GitHub Actions というのが使えるようになっています。
そのためこちらを使っていこうと思います。
「やりたいこと」はこんな感じです。
- 本線(master)ブランチに対して push あるいは pull request したときに以下を実施
- ビルド(Debug/Release)が失敗しないかをチェック
- ユニットテストが全部パスするかをチェック
- ユニットテスト実行時のコードカバレッジを取得して見やすく表示
- リリース作業を行いたいときに、リリースパッケージの自動生成
まずは「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 の方です。
大きな流れは以下のような感じです。
- チェックアウト
- NuGet をセットアップ
- NuGet パッケージを復元
- MSBuild をセットアップ
- ビルドを実行 ( MSBuild )
- カバレッジツールを実行 ( AltCover )
- テストを実行 ( MSTest )
- カバレッジレポートを作成 ( ReportGenerator )
- レポートを保存する
カバレッジを取得し、結果を得るために 6. 8. を追加したのがポイントですが、手探りで試しているので、正しい手順かどうかはやや不安です。詳しい方がいたら教えていただけると嬉しいです。
とりあえず、結果がレポートとして生成されるところまでは到達できました。
目指すゴールまで、あとちょっとです。
GitHubのプロジェクトトップページにはこんな感じの「バッジ」でカバレッジを表現しているものがあります。これをやりたいのです。
上記 8. で、ReportGenerator 実行時のオプションに -reporttypes: に Badges を追加することで、この画像が生成されるところまではできたんですが、これをトップページに貼るところがまだわかっていません。
誰か、わかる方いたら教えてください・・・