Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・...
Search
Hacarus Inc.
April 27, 2024
Programming
0
980
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
2024/4/27開催のC#パフォーマンス勉強会で発表した資料です
Hacarus Inc.
April 27, 2024
Tweet
Share
More Decks by Hacarus Inc.
See All by Hacarus Inc.
QA4AIに則ったMLOpsツールの活用
hacarus
0
630
0から協働ロボット外観検査システムを3ヵ月で具現化した軌跡
hacarus
0
190
ワンちゃんの健康を願う皆様に送る 犬心電図AI解析プロダクト紹介_AWS DevDay2022
hacarus
0
150
犬の心電AI解析プロダクト開発奮闘記 _クラウドからハード開発までてんこ盛り
hacarus
0
1.6k
ExplainableAIの概要とAmazon SageMaker Clarifyでの実装例
hacarus
0
820
AWS Step Functions を用いた非同期学習処理の例
hacarus
0
940
Dashでmyダッシュボードを作ろう ーpytrendsで見るコロナの感染拡大時期ー
hacarus
0
1.2k
Interpretable Machine Learning: モデル非依存な解釈手法の紹介
hacarus
0
930
時系列データ予測手法の宇宙天気予報への応用
hacarus
0
1.2k
Other Decks in Programming
See All in Programming
ドメインイベント増えすぎ問題
h0r15h0
2
560
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
300
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
6
1.4k
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.8k
Оптимизируем производительность блока Казначейство
lamodatech
0
950
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.8k
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
230
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
Docker and Python
trallard
43
3.2k
A designer walks into a library…
pauljervisheath
205
24k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Statistics for Hackers
jakevdp
797
220k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
350
How to Ace a Technical Interview
jacobian
276
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Transcript
1 GitLab CI/CD で C#/WPFアプリケーションのテストとインス トーラーのビルド・デプロイを自動化する 株式会社HACARUS 宇佐見一平
2 名前: 宇佐見 一平 略歴:2017-04 新卒でメーカーに入社 2019-03 HACARUSに転職 職務内容:AI外観検査プロダクトの開発 C#暦
2年くらい(Python 5年くらい) 趣味 :テレビゲーム、NFL 自己紹介
3 HACARUS Check 撮 像 検 査 Hardware ロボット+カメラ+照明を 組み合わせて最適な撮像
Software 少量良品データで 高速学習し AI 判定 C#(.NET8)/WPF
4 構築したパイプライン Windows PC GItLab CI Unit test Build Installer
Upload Installer Google Drive JJJJj Upload Installer Release Note
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ファイル(抜粋)
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をどこで動かすか
7 • 前回のリリース~今回のリリース間で mainにマージされたマージリクエストの項目をリリースノートに記載 する ◦ GitLabでリリースを作成する公式ツールである GitLab Release CLIを利用
◦ MRの情報をとるために、 python-gitlabを利用 リリースノートを自動生成して変更を確認
8 • ユニットテストの実行が自動化された • 誰でもインストーラーが簡単にビルドできるようになった • リリースノートが自動生成され、インストーラーでどういう機能が追加さ れたのかが一見してわかるようになった • すぐに生成物をセールスの人に共有できるようになった
CI/CDを設定してよかったこと
9 • ユニットテストの実行が自動化された • 誰でもインストーラーが簡単にビルドできるようになった • リリースノートが自動生成され、インストーラーでどういう機能が追加さ れたのかが一見してわかるようになった • すぐに生成物をセールスの人に共有できるようになった
CI/CDを設定してよかったこと 結論:自動化は楽しい