Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bitriseでアプリのバイナリサイズを自動チェック - Dangerプラグインを作った話 -

Kenji Tayama
September 03, 2019

Bitriseでアプリのバイナリサイズを自動チェック - Dangerプラグインを作った話 -

Bitrise User Group Meetup #2 で発表したスライドです。
https://bitrise-japan.connpass.com/event/141052/

このような話になっています:
- アプリのバイナリサイズが気になったきっかけ
- bloaty (バイナリサイズのプロファイラ) について
- Danger(PRを自動チェックするツール)について
- bloatyを実行するDangerプラグインを作った話
- Bitriseのstepを色々使ったのでWorkflowも紹介

Kenji Tayama

September 03, 2019
Tweet

Other Decks in Programming

Transcript

  1. Copyright © 2017 eureka, Inc. All rights reserved. 2019/09/03 Bitrise

    User Group Meetup #2 BitriseͰΞϓϦͷόΠφϦαΠζΛࣗಈνΣοΫ - DangerϓϥάΠϯΛ࡞ͬͨ࿩ -
  2. Copyright © 2017 eureka, Inc. All rights reserved. 2 Self-introduction

     FVSFLB *OD  J04&OHJOFFS 1BJST   ͓ञ͕޷͖Ͱ͢ɻಛʹϏʔϧ͕ɻ @kenji_tayama ଠࢁ ݈ೋ https://bairdbeer.com/ja/beer/suruga-bay-imperial-ipa/
  3. Copyright © 2017 eureka, Inc. All rights reserved. 3 Agenda

     ΞϓϦͷόΠφϦαΠζ͕ؾʹͳ͖͔͚ͬͨͬ  CMPBUZ όΠφϦαΠζͷϓϩϑΝΠϥ ʹ͍ͭͯ  %BOHFSʢ13ΛࣗಈνΣοΫ͢Δπʔϧʣʹ͍ͭͯ  CMPBUZΛ࣮ߦ͢Δ%BOHFSϓϥάΠϯΛ࡞ͬͨ࿩  #JUSJTFͷTUFQΛ৭ʑ࢖ͬͨͷͰ8PSLqPX΋঺հ
  4. Copyright © 2017 eureka, Inc. All rights reserved. 5 όΠφϦαΠζ͕ؾʹͳͬͨഎܠ

     ΞϓϦ͕େن໛ʹͳ͖ͬͯͨ  "QQ4UPSFͷ(௨৴Ͱͷμ΢ϯϩʔυαΠζ੍ݶ  ؇࿨͞Εͨͱ͸͍͑ɺ͕͔͔࣌ؒΔͷ͸ετϨε  ͪΐͬͱͨ͠ίʔυͷॻ͖ํͷҧ͍ͰόΠφϦαΠζ͕มΘΔ͜ͱ͕͋ͬ ͨ
  5. Copyright © 2017 eureka, Inc. All rights reserved. 6 όΠφϦαΠζͷ಺༁Λܭଌ͍ͨ͠

     ࡟ݮ͢Δํ๏͸ݟ͔͚Δ͕ɺͦ΋ͦ΋͏ͪͷΞϓϦͷ༰ྔ͸Ͳ͏ͯ͠Ͱ͔ ͍ΜͩΖ͏ʁ  ͜Ε΋ʮ⚠ਪଌ͢ΔͳɺܭଌͤΑʯʜʂ
  6. Copyright © 2017 eureka, Inc. All rights reserved. 7 Bloaty

    McBloatface: a size profiler for binaries  όΠφϦαΠζͷϓϩϑΝΠϥ  $-*"QQMJDBUJPO  &-' -JOVYͳͲ ΍.BDI0 J04ͳͲ ͷόΠφϦܗࣜʹରԠ͍ͯ͠Δ  "OESPJE"1,ʹ͸ະରԠ ѹॖͷؔ࿈Ͱ೉ͦ͠͏ͱͷ͜ͱ  https://github.com/google/bloaty
  7. Copyright © 2017 eureka, Inc. All rights reserved. 8 bloaty

    ࣮ߦྫ CMPBUZίϚϯυࣗ਎ͷαΠζͷ ಺༁Λௐ΂ΔʢSFBENFΑΓʣ
  8. Copyright © 2017 eureka, Inc. All rights reserved. 9 “

    ͜ΕɺDangerͰPR্ͰݟΕΔͱศརͦ͏ʂ”
  9. Copyright © 2017 eureka, Inc. All rights reserved. 10 Danger

     13ΛࣗಈνΣοΫ͢Δπʔϧ  ʮλΠτϧʹνέοτ൪߸ೖͬͯ ͳ͍Αʂʯ  ίʔυͷMJOUΛ࣮ߦͯ݁͠ՌΛࡌͤ Δ  %BOHFSpMFʹνΣοΫॲཧΛॻ͘ɻ ϓϥάΠϯͰॲཧΛಋೖͰ͖Δɻ https://danger.systems/ruby/
  10. Copyright © 2017 eureka, Inc. All rights reserved. 11 danger-bloaty

    Λ࡞ͬͨ࿩  ࡞ͬͨ΋ͷ  %BOHFSϓϥάΠϯLFOKJUBZBNBEBOHFSCMPBUZ  αϯϓϧϓϩδΣΫτLFOKJUBZBNBJPTDJQMBZHSPVOE  ઌिগͣͭ͠࡞ͬͯग़དྷཱͯϗϠϗϠɻػೳ͸࠷খݶɻ  #JUSJTFͰ࣮ߦதʢαϯϓϧϓϩδΣΫτˍ1BJSTJ04ʣ  αϯϓϧϓϩδΣΫτ͸GBTUMBOFΛ࢖Θͣɺग़དྷΔ͚ͩ#JUSJTFͷTUFQΛ ۦ࢖✨
  11. Copyright © 2017 eureka, Inc. All rights reserved. 13 DangerϓϥάΠϯΛ࡞Δͷ͸؆୯ͩͬͨʂ

     ςϯϓϨʔτੜ੒ EBOHFSQMVHJOTDSFBUFEBOHFSCMPBUZ QMVHJOSCΛฤू ͜ΕΛ௥Ճ͚ͨͩ͠
  12. Copyright © 2017 eureka, Inc. All rights reserved. 14 ͜ͷϓϥάΠϯΛ࢖͏ͨΊʹඞཁͳ͜ͱ

     CMPBUZίϚϯυ΁ͷ1"5)͕௨͍ͬͯΔ͜ͱ  ؀ڥม਺%"/(&3@#-0"5:@"11@#*/"3:@1"5)͕ઃఆ͞Ε͍ͯΔ͜ͱ  ΞϓϦͷόΠφϦ΁ͷύεʢQBUIUP&YBNQMFBQQ&YBNQMFʣ
  13. Copyright © 2017 eureka, Inc. All rights reserved. 15 Workflow

    ←bloatyίϚϯυ΁ͷPATHΛ௨͢ ←؀ڥม਺ DANGER_BLOATY_APP_BINARY_PATH
  14. Copyright © 2017 eureka, Inc. All rights reserved. 16 Xcode

    build for simulator ͜ΕΛޙͰ࢖͍·͢
  15. Copyright © 2017 eureka, Inc. All rights reserved. 18 Set

    environment variable ʮXcode build for simulatorʯstepͰ ઃఆ͞Εͨ΋ͷ ← path/to/Example.app/Example ʹͳΔ
  16. Copyright © 2017 eureka, Inc. All rights reserved. 19 Run

    Danger PRʹίϝϯτ͢ΔͨΊͷAPI Token
  17. Copyright © 2017 eureka, Inc. All rights reserved. 20 ࠓޙͷల๬

     13ͷCBTFϒϥϯνͷόΠφϦͱൺֱʢ4J[FEJ⒎Tʣ  ݸผͷDMBTT΍TUSVDUͷ಺༁ͰݟΕΔΑ͏ʹ͢ΔʢE4:.ͷࢦఆ͕ඞཁʣ  EBOHFSͷ8BSOJOH΍&SSPSΛग़͢Α͏ʹ͢Δ  ༰ྔ૿͑͗͢ͳΒ&SSPSʹͯ͠13ΛϚʔδͤ͞ͳ͍ʂ  CMPBUZͷͦͷଞ৭ʑͳΦϓγϣϯΛαϙʔτ
  18. Copyright © 2017 eureka, Inc. All rights reserved. 21 ·ͱΊ

     %BOHFSϓϥάΠϯΛ࡞Δͷ͸؆୯ͩͬͨ  #JUSJTFͷ4UFQ͸ඞཁͳ΋ͷ͕શͯ͋ͬͨ  %BOHFSͱ#JUSJTFΛ࢖͑͹13ͷࣗಈνΣοΫ͸ԿͰ΋ग़དྷͦ͏