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
GitHub Actionsでテストの結果をわかりやすく表示する
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kishikawa Katsumi
October 18, 2021
Programming
2.7k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub Actionsでテストの結果をわかりやすく表示する
Kishikawa Katsumi
October 18, 2021
More Decks by Kishikawa Katsumi
See All by Kishikawa Katsumi
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
150
Running Swift without an OS
kishikawakatsumi
0
960
浮動小数の比較について
kishikawakatsumi
0
570
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
260
愛される翻訳の秘訣
kishikawakatsumi
3
460
Private APIの呼び出し方
kishikawakatsumi
3
1k
iOSでSVG画像を扱う
kishikawakatsumi
0
250
Build your own WebP codec in Swift
kishikawakatsumi
2
2.3k
iOSDC 2024 SMBファイル共有をSwiftで実装する
kishikawakatsumi
1
330
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
100
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
450
スマートグラスで並列バイブコーディング
hyshu
0
280
Webフレームワークの ベンチマークについて
yusukebe
0
200
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
130
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
340
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.7k
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
360
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
1
100
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
関数型プログラミングのメリットって何だろう?
wanko_it
0
140
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
180
Discover your Explorer Soul
emna__ayadi
2
1.2k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
310
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
エンジニアに許された特別な時間の終わり
watany
107
250k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
Between Models and Reality
mayunak
4
360
Transcript
GitHub ActionsͰςετͷ݁ՌΛ Θ͔Γ͘͢දࣔ͢Δ
None
None
None
None
None
Xcode result bundle
Xcode result bundle
$ xcresulttool
$ xcrun xcresulttool get --path results.xcresult --format json { "_type"
: { "_name" : "ActionsInvocationRecord" }, "actions" : { "_type" : { "_name" : "Array" }, "_values" : [ { "_type" : { "_name" : "ActionRecord" }, "actionResult" : { "_type" : { "_name" : "ActionResult" }, "coverage" : { "_type" : { "_name" : "CodeCoverageInfo" } }, "diagnosticsRef" : { "_type" : { "_name" : "Reference" }, "id" : { "_type" : { "_name" : "String" }, "_value" : "0~vHg7If_A0mZHPjzIsvdzoL3IMfYHwL0Z3rj6u9zpzhXhMGPmKNKQ6J5lQj8MHSuoz26pval1lC8J4W8bxYO52A==" }
$ xcrun xcresulttool get --path results.xcresult --format json { "_type"
: { "_name" : "ActionsInvocationRecord" }, "actions" : { "_type" : { "_name" : "Array" }, "_values" : [ { "_type" : { "_name" : "ActionRecord" }, "actionResult" : { "_type" : { "_name" : "ActionResult" }, "coverage" : { "_type" : { "_name" : "CodeCoverageInfo" } }, "diagnosticsRef" : { "_type" : { "_name" : "Reference" }, "id" : { "_type" : { "_name" : "String" }, "_value" : "0~vHg7If_A0mZHPjzIsvdzoL3IMfYHwL0Z3rj6u9zpzhXhMGPmKNKQ6J5lQj8MHSuoz26pval1lC8J4W8bxYO52A==" }
$ xcrun xcresulttool get --path results.xcresult --format json \ --id
"0~0I_MUIRIScR7EhYb3xNOgrrrCppe_B9k1ewbNE0HZs4qyaVJRD1xjS3UbUY272hciPa1kSxSDXXsRUODkYY2Uw==" { "_type" : { "_name" : "ActionsInvocationMetadata" }, "creatingWorkspaceFilePath" : { "_type" : { "_name" : "String" }, "_value" : "\/Users\/katsumi\/Develop\/Weather\/Weather.xcodeproj" },
$ xcrun xcresulttool get --path results.xcresult --format json \ --id
"0~0I_MUIRIScR7EhYb3xNOgrrrCppe_B9k1ewbNE0HZs4qyaVJRD1xjS3UbUY272hciPa1kSxSDXXsRUODkYY2Uw==" { "_type" : { "_name" : "ActionsInvocationMetadata" }, "creatingWorkspaceFilePath" : { "_type" : { "_name" : "String" }, "_value" : "\/Users\/katsumi\/Develop\/Weather\/Weather.xcodeproj" },
GitHub Checks API
None
Conclusion Summary Annotations
None
طͷɾ੍ݶࣄ߲ • Annotation̍εςοϓʹ͖ͭ10ݸ·ͰɺશମͰ50ݸ·Ͱ • UIςετதʹࡱͬͨεΫϦʔϯγϣοτΛΘ͔Γ͘͢ද͍ࣔͨ͠ • Artifactsʹอଘ͢Δ • Action͔ΒͷURLΛࢀর͢Δखஈ͕ͳ͍ •
ը૾ͱͯ͠ࢀর͢Δखஈ͕ͳ͍ʢZipʹͳΔʣ • Releaseʹอଘ͢Δ • Releaseʹλά͕ඞཁʢPR͝ͱʹ࡞Δʁʣ • ઐ༻ͷεΫϦʔϯγϣοτஔ͖ͷϦϙδτϦΛ࡞Δʁ • ϦϙδτϦʹίϛοτ͢Δ • ϦϙδτϦʹෆཁͳίϛοτ͕૿͑ΔʢϒϥϯνͰִ͢Ε͍͍͔ʣ • ઐ༻ͷϦϙδτϦΛ࡞Δʁ
None
References • ϝϧϖΠͰͷxcresult׆༻ࣄྫ | ϝϧΧϦΤϯδχΞϦϯά https://engineering.mercari.com/blog/entry/20201218-61f7110851/ • Xcode 11ͰͷςετपΓͷ৽ػೳΛհ͠·͢ʂ -
DeNA Testing Blog https://swet.dena.com/entry/2019/10/23/080000 • xcparse | ChargePoint https://www.chargepoint.com/engineering/xcparse/ • xcresulttool GitHub Actions https://github.com/kishikawakatsumi/xcresulttool