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
1.1k
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
650
0から協働ロボット外観検査システムを3ヵ月で具現化した軌跡
hacarus
0
210
ワンちゃんの健康を願う皆様に送る 犬心電図AI解析プロダクト紹介_AWS DevDay2022
hacarus
0
160
犬の心電AI解析プロダクト開発奮闘記 _クラウドからハード開発までてんこ盛り
hacarus
0
1.6k
ExplainableAIの概要とAmazon SageMaker Clarifyでの実装例
hacarus
0
860
AWS Step Functions を用いた非同期学習処理の例
hacarus
0
1k
Dashでmyダッシュボードを作ろう ーpytrendsで見るコロナの感染拡大時期ー
hacarus
0
1.3k
Interpretable Machine Learning: モデル非依存な解釈手法の紹介
hacarus
0
970
時系列データ予測手法の宇宙天気予報への応用
hacarus
0
1.3k
Other Decks in Programming
See All in Programming
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
5
1.9k
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
4
900
私の愛したLaravel 〜レールを超えたその先へ〜
kentaroutakeda
11
2.7k
複数ドメインに散らばってしまった画像…! 運用中のPHPアプリに後からCDNを導入する…!
suguruooki
0
360
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
0
170
RailsでCQRS/ESをやってみたきづき
suzukimar
2
1.4k
WordPress Playground for Developers
iambherulal
0
110
GDG Super.init(version=6) - From Where to Wear : 모바일 개발자가 워치에서 발견한 인사이트
haeti2
0
520
ローコードサービスの進化のためのモノレポ移行
taro28
1
300
PromptyによるAI開発入門
ymd65536
1
330
Goで作るChrome Extensions / Fukuoka.go #21
n3xem
2
2.5k
Go1.24 go vetとtestsアナライザ
kuro_kurorrr
1
220
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Writing Fast Ruby
sferik
628
61k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Side Projects
sachag
452
42k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
430
Navigating Team Friction
lara
183
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
How STYLIGHT went responsive
nonsquared
99
5.4k
The Language of Interfaces
destraynor
156
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
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を設定してよかったこと 結論:自動化は楽しい