Slide 1

Slide 1 text

1 GitLab CI/CD で C#/WPFアプリケーションのテストとインス トーラーのビルド・デプロイを自動化する 株式会社HACARUS 宇佐見一平

Slide 2

Slide 2 text

2 名前: 宇佐見 一平 略歴:2017-04 新卒でメーカーに入社 2019-03 HACARUSに転職 職務内容:AI外観検査プロダクトの開発 C#暦 2年くらい(Python 5年くらい) 趣味 :テレビゲーム、NFL 自己紹介

Slide 3

Slide 3 text

3 HACARUS Check 撮 像 検 査 Hardware ロボット+カメラ+照明を 組み合わせて最適な撮像 Software 少量良品データで 高速学習し AI 判定 C#(.NET8)/WPF

Slide 4

Slide 4 text

4 構築したパイプライン Windows PC GItLab CI Unit test Build Installer Upload Installer Google Drive JJJJj Upload Installer Release Note

Slide 5

Slide 5 text

5 pages: tags: - windows stage: pages script: - "& dotnet test ./HacarusCheckBasicVer2.sln --collect:'XPlat Code Coverage' --results-directory coverageResult" - "& 'C:/Users/hacarus/.dotnet/tools/reportgenerator.exe' -reports:'./coverageResult/*/coverage.cobertura.xml' -targetdir:'coveragereport' -reporttypes:Html" - mv coveragereport public artifacts: paths: - public GitLab CI用のyamlファイル(抜粋)

Slide 6

Slide 6 text

6 1. SaaSで提供されているGitLab CI/CDを利用 a. WPFはWindows環境でなければビルドできなさそう もし方法あれば教えてください 2. WindowsPC上でGitLab CI/CDをセットアップして実行する a. GitLab Runnerという仕組みをGitLabが提供している CI/CDの流れ 1. コードをコミットすると GitLab Runnerが起動 2. Unit testを実行 3. タグ付けするとインストーラをビルドするジョブが実行 4. リリースノート自動生成 5. ビルド完了したらGoogleDriveへアップロード GitLab CI/CDをどこで動かすか

Slide 7

Slide 7 text

7 ● 前回のリリース~今回のリリース間で mainにマージされたマージリクエストの項目をリリースノートに記載 する ○ GitLabでリリースを作成する公式ツールである GitLab Release CLIを利用 ○ MRの情報をとるために、 python-gitlabを利用 リリースノートを自動生成して変更を確認

Slide 8

Slide 8 text

8 ● ユニットテストの実行が自動化された ● 誰でもインストーラーが簡単にビルドできるようになった ● リリースノートが自動生成され、インストーラーでどういう機能が追加さ れたのかが一見してわかるようになった ● すぐに生成物をセールスの人に共有できるようになった CI/CDを設定してよかったこと

Slide 9

Slide 9 text

9 ● ユニットテストの実行が自動化された ● 誰でもインストーラーが簡単にビルドできるようになった ● リリースノートが自動生成され、インストーラーでどういう機能が追加さ れたのかが一見してわかるようになった ● すぐに生成物をセールスの人に共有できるようになった CI/CDを設定してよかったこと 結論:自動化は楽しい