Slide 1

Slide 1 text

GitHub ActionsͰςετͷ݁ՌΛ Θ͔Γ΍͘͢දࣔ͢Δ

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Xcode result bundle

Slide 8

Slide 8 text

Xcode result bundle

Slide 9

Slide 9 text

$ xcresulttool

Slide 10

Slide 10 text

$ 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==" }

Slide 11

Slide 11 text

$ 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==" }

Slide 12

Slide 12 text

$ 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" },

Slide 13

Slide 13 text

$ 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" },

Slide 14

Slide 14 text

GitHub Checks API

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Conclusion Summary Annotations

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

ط஌ͷ໰୊ɾ੍ݶࣄ߲ • Annotation͸̍εςοϓʹ͖ͭ10ݸ·ͰɺશମͰ50ݸ·Ͱ • UIςετதʹࡱͬͨεΫϦʔϯγϣοτΛΘ͔Γ΍͘͢ද͍ࣔͨ͠ • Artifactsʹอଘ͢Δ • Action಺͔Β௚઀ͷURLΛࢀর͢Δखஈ͕ͳ͍ • ը૾ͱͯ͠ࢀর͢Δखஈ͕ͳ͍ʢZipʹͳΔʣ • Releaseʹอଘ͢Δ • Releaseʹ͸λά͕ඞཁʢPR͝ͱʹ࡞Δʁʣ • ઐ༻ͷεΫϦʔϯγϣοτஔ͖৔ͷϦϙδτϦΛ࡞Δʁ • ϦϙδτϦʹίϛοτ͢Δ • ϦϙδτϦʹෆཁͳίϛοτ͕૿͑ΔʢϒϥϯνͰִ཭͢Ε͹͍͍͔΋ʣ • ઐ༻ͷϦϙδτϦΛ࡞Δʁ

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

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