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
Kishikawa Katsumi
October 18, 2021
Programming
2.8k
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
160
Running Swift without an OS
kishikawakatsumi
0
970
浮動小数の比較について
kishikawakatsumi
0
590
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
260
愛される翻訳の秘訣
kishikawakatsumi
3
470
Private APIの呼び出し方
kishikawakatsumi
3
1k
iOSでSVG画像を扱う
kishikawakatsumi
0
250
Build your own WebP codec in Swift
kishikawakatsumi
2
2.6k
iOSDC 2024 SMBファイル共有をSwiftで実装する
kishikawakatsumi
1
330
Other Decks in Programming
See All in Programming
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
350
霧の中の代数的エフェクト
funnyycat
1
450
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
380
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
130
Claude Team Plan導入・ガイド
tk3fftk
0
250
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
260
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
160
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
160
Android CLI
fornewid
0
200
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
200
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
130
Featured
See All Featured
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.7k
Building an army of robots
kneath
306
46k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Claude Code のすすめ
schroneko
67
230k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Leo the Paperboy
mayatellez
8
2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Optimizing for Happiness
mojombo
378
71k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
550
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
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