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

note iOSチームの自動化 ver.2021/automation_with_iOS_team_on_note_ver2021

fromkk
December 17, 2021

note iOSチームの自動化 ver.2021/automation_with_iOS_team_on_note_ver2021

【オンライン開催】YUMEMI.swift #14 〜今年の振り返り〜で発表してきた資料です。
note の iOS チームで進めている自動化のアップデートについてお話ししました。
主に2つの自動化の内容を紹介しています。
・バグ情報を手軽にリポジトリに溜めたい
・リリースノートを検討するPull Requestを手軽に作成したい

fromkk

December 17, 2021
Tweet

More Decks by fromkk

Other Decks in Programming

Transcript

  1. !GSPNLL
    OPUFJ04νʔϜͷࣗಈԽWFS
    :6.&.*TXJGU

    View Slide

  2. !GSPNLL
    OPUFJ04νʔϜͷࣗಈԽWFS
    :6.&.*TXJGU

    View Slide

  3. !GSPNLL
    OPUFJ04νʔϜͷࣗಈԽWFS
    :6.&.*ࣗಈԽ

    View Slide

  4. View Slide

  5. ৼΓฦΓ

    View Slide

  6. View Slide

  7. ͋Ε͔Β೥Ҏ্ܦաͨ͠ͷͰ
    ΞοϓσʔτΛ঺հ

    View Slide

  8. ໨࣍
    w όά৘ใΛखܰʹϦϙδτϦʹཷΊ͍ͨ
    w ϦϦʔεϊʔτΛݕ౼͢Δ1VMM3FRVFTUΛखܰʹ࡞੒͍ͨ͠

    View Slide

  9. όά৘ใΛखܰʹϦϙδτϦʹཷΊ͍ͨ

    View Slide

  10. ΢ΣϒɾΞϓϦͱ΋ʹ඼࣭͕՝୊ʹ
    w 2"νʔϜ͕͓Βͣɺ։ൃऀɾσβΠφʔ΍1.ʹΑΔಈ࡞֬ೝɺϢχοτςε
    τ΍&&ςετͰ඼࣭ΛΧόʔ͍ͯ͠Δ
    w ΤϯδχΞͷਓ਺͕૿͑ͨΓαʔϏεͷن໛΋େ͖͘ͳ͖ͬͯͨͷͰ඼࣭ͷ
    ୲อ͕೉͘͠ͳ͖ͬͯͨ
    w ϦϦʔεޙͷόάमਖ਼ΛͳΔ΂͘ݮΒ͍ͨ͠

    View Slide

  11. ΢ΣϒɾΞϓϦͱ΋ʹ඼࣭͕՝୊ʹ
    w 2"νʔϜ͕͓Βͣɺ։ൃऀɾσβΠφʔ΍1.ʹΑΔಈ࡞֬ೝɺϢχοτςε
    τ΍&&ςετͰ඼࣭ΛΧόʔ͍ͯ͠Δ
    w ΤϯδχΞͷਓ਺͕૿͑ͨΓαʔϏεͷن໛΋େ͖͘ͳ͖ͬͯͨͷͰ඼࣭ͷ
    ୲อ͕೉͘͠ͳ͖ͬͯͨ
    w ϦϦʔεޙͷόάमਖ਼ΛͳΔ΂͘ݮΒ͍ͨ͠
    w ͲΜͳෆ۩߹͕ଟ͍ͷ͔Λ·ͣ͸஌Γ͍ͨ

    View Slide

  12. όάͷछྨΛՄࢹԽ͍ͨ͠
    w ϦϦʔεલʹݟ͚ͭͨόά
    w ϦϦʔεޙʹΤϯδχΞ͕ݟ͚ͭͨόά
    w ϦϦʔεޙʹ໰͍߹Θ͕ͤ͋ͬͯ$4͔Βใࠂ͕͋ͬͨόά

    View Slide

  13. όάͷछྨΛՄࢹԽ͍ͨ͠
    w ϦϦʔεલʹݟ͚ͭͨόά
    w ϦϦʔεޙʹΤϯδχΞ͕ݟ͚ͭͨόά
    w ϦϦʔεޙʹ໰͍߹Θ͕ͤ͋ͬͯ$4͔Βใࠂ͕͋ͬͨόά
    ˣޙΖʹ͍͘΄ͲΫϦςΟΧϧ

    View Slide

  14. όάτϥοΩϯάͷ৔ॴͷݕ౼
    w (JU)VC*TTVFT
    w ;FO)VC
    w +JSB
    w #BDLMPH
    w 3FENJOF
    w FUDʜ

    View Slide

  15. όάτϥοΩϯάͷ৔ॴͷݕ౼
    w (JU)VC*TTVFTʢΈΜͳ͕׳ΕͯΔʣ
    w ;FO)VC
    w +JSB
    w #BDLMPH
    w 3FENJOF
    w FUDʜ

    View Slide

  16. (JU)VC*TTVFT
    λΠτϧ
    ಺༰
    QMBUGPSN༻ϥϕϧ
    ϑΣʔζ༻ϥϕϧ

    View Slide

  17. ਖ਼௚໘౗͍͘͞
    खͰଧͭͷ͸

    View Slide

  18. ࣗಈԽ͠Α͏

    View Slide

  19. छྨͷࣗಈԽ
    4MBDLͷϝοηʔδΛ*TTVFԽ
    طʹ͋Δ*TTVF 1VMM3FRVFTUΛผͷϦϙδτϦͷ*TTVFʹίϐʔ

    View Slide

  20. 4MBDLͷϝοηʔδΛ*TTVFԽ

    View Slide

  21. IUUQTOPUFDPNMBQSBTESVNOOCDEE
    ࢀߟ

    View Slide

  22. ϑΣʔζ͝ͱͷֆจࣈΛ༻ҙ
    JPT@CVH@CFGPSF@SFMFBTF JPT@CVH@PO@QSPE JPT@CVH@GSPN@DT

    View Slide

  23. View Slide

  24. View Slide

  25. /FX3FBDUJPO"EEFEJO4MBDL
    ઃఆͨ͠ֆจࣈ
    4MBDLͷνϟϯωϧ໊

    View Slide

  26. 3VOKBWBTDSJQU
    ϝοηʔδͷߦ໨ͱͦΕҎ֎ͷߦΛ෼ׂ

    View Slide

  27. $SFBUF*TTVFJO(JU)VC
    CVHUSBDLJOHϦϙδτϦ
    QMBUGPSN QIBTF༻ͷϥϕϧ

    View Slide

  28. 4FOE$IBOOFM.FTTBHFJO4MBDL
    ɾ
    ɾ
    ɾ

    View Slide

  29. ݁Ռ

    View Slide

  30. ͱͯ΋ָ🎉

    View Slide

  31. طʹ͋Δ*TTVF 1VMM3FRVFTUΛ
    ผͷϦϙδτϦͷ*TTVFʹίϐʔ

    View Slide

  32. ;BQͷ֓ཁ

    View Slide

  33. $BUDI)PPL
    63-Λ߇͓͑ͯ͘

    View Slide

  34. 1BUIͷઃఆ
    1BZMPBE1VMM3FRVFTU/BNF͕ଘࡏ͠ɺ1BZMPBE"DUJPOʹMBCFMFEΛؚΜͰ͍Δ৔߹͸1VMM3FRVFTU
    ಉ༷ʹ1BZMPBE*TTVF/BNF͕ଘࡏ͠ɺ1BZMPBE"DUJPOʹMBCFMFEΛؚΜͰ͍Δ৔߹͸*TTVFͱͯ͠ѻ͏

    View Slide

  35. 'JMUFSͷઃఆ
    ෇༩͞ΕͨϥϕϧΛϑΟϧλϦϯά

    View Slide

  36. 3VOKBWBTDSJQU
    ίϐʔݩͱίϐʔઌͷϥϕϧΛϚοϐϯά

    View Slide

  37. $SFBUF*TTVFJO(JU)VC
    4MBDLͷϝοηʔδΛJTTVFԽͱಉ༷
    3VOKBWBTDSJQUͰ࡞੒ͨ͠ϥϕϧ
    ίϐʔઌͷϦϙδτϦ

    View Slide

  38. (JU)VCͰ8FCIPPLTͷઃఆ
    ߇͓͍͑ͯͨ63-Λઃఆ
    *TTVFT 1VMMSFRVFTUʹνΣοΫ

    View Slide

  39. ͱͯ΋ָ🎉

    View Slide

  40. ϦϦʔεϊʔτΛݕ౼͢Δ
    1VMM3FRVFTUΛखܰʹ࡞੒͍ͨ͠

    View Slide

  41. IUUQTOPUFDPNZSJJDBOOEDGBG

    View Slide

  42. ϦϦʔεϊʔτͷྲྀΕ

    View Slide

  43. ϦϦʔεϊʔτͷྲྀΕ

    View Slide

  44. ࣗಈԽ͠Α͏

    View Slide

  45. ϦϦʔεϊʔτ࡞੒ͷྲྀΕ
    4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ
    ;BQJFS͔Β$JSDMF$*Λݺͼग़͠
    $JSDMF$*ͰIPU
    fi
    Y\/&95@7&34*0/^SFMFBTF@OPUFϒϥϯνΛ࡞੒
    ;BQJFS͔Β1VMM3FRVFTUΛ࡞੒

    View Slide

  46. ϦϦʔεϊʔτ࡞੒ͷྲྀΕ
    4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ
    ;BQJFS͔Β$JSDMF$*Λݺͼग़͠
    $JSDMF$*ͰIPU
    fi
    Y\/&95@7&34*0/^SFMFBTF@OPUFϒϥϯνΛ࡞੒
    ;BQJFS͔Β1VMM3FRVFTUΛ࡞੒
    ޙΖ͔Βઆ໌

    View Slide

  47. ;BQJFS͔Β1VMM3FRVFTUΛ࡞੒

    View Slide

  48. $BUDI)PPL
    63-Λ߇͓͑ͯ͘

    View Slide

  49. ̎$SFBUF1VMM3FRVFTUJO(JU)VC
    ϦϙδτϦΛબ୒
    ޙͷ৘ใ͸νʔϜ͝ͱʹద੾ʹઃఆ

    View Slide

  50. 4FOE$IBOOFM.FTTBHFJO4MBDL

    View Slide

  51. $JSDMF$*ͰIPUGJY\/&95@7&34*0/^SFMFBTF@OPUFϒϥϯνΛ࡞੒
    - &create_release_note_from_ci


    - checkout


    - *attach_workspace


    - run:


    name: "create branch for release note"


    command: |


    NEXT_VERSION=<< pipeline.parameters.next_version >>


    BRANCH=<< pipeline.git.branch >>


    if [ "$NEXT_VERSION" = "" ]; then


    NEXT_VERSION=${BRANCH##*/}


    fi


    echo $NEXT_VERSION


    git reset --hard HEAD


    git config user.email “[email protected]


    git config user.name “Example User Name”


    NEW_BRANCH_NAME="hotfix/${NEXT_VERSION}/release_note"


    if [[ -n `git ls-remote --heads origin ${NEW_BRANCH_NAME}` ]]; then


    echo "Branch name $NEW_BRANCH_NAME already exists."


    else


    echo "Branch name $NEW_BRANCH_NAME not exists."


    git checkout -b $NEW_BRANCH_NAME


    echo "for ${NEXT_VERSION}" >> ./fastlane/metadata/en-US/release_notes.txt


    git add .


    git commit -m "[ci skip] [auto commit] update release note"


    git push origin hotfix/${NEXT_VERSION}/release_note


    curl -X POST -d "version=${NEXT_VERSION}" https://hooks.zapier.com/hooks/catch/999999/XXXXXX/


    fi


    (JU)VCʹϒϥϯν͕͋Δ͔
    ແ͚Ε͹ϒϥϯνΛ࡞੒
    ద౰ͳमਖ਼ΛՃ͑ͯ1VTI
    ;BQJFS͔Β1VMM3FRVFTUΛ࡞੒
    Ͱ࡞ͬͨ63-Λୟ͘

    View Slide

  52. ;BQJFS͔Β$JSDMF$*Λ࣮ߦ

    View Slide

  53. $BUDI)PPL
    63-Λ߇͓͑ͯ͘

    View Slide

  54. 3VO1ZUIPO
    αʔΫϧ$*ͷτʔΫϯ

    View Slide

  55. 4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ

    View Slide

  56. 4MBTI$PNNBOEͷઃఆ
    ;BQJFS͔Β$JSDMF$*Λ࣮ߦ
    Ͱ࡞੒ͨ͠63-Λઃఆ

    View Slide

  57. ݁Ռ

    View Slide

  58. ͱͯ΋ָ🎉

    View Slide

  59. ·ͱΊ
    w OPUFࣾͷΞϓϦνʔϜͰ͸ݶΒΕͨϝϯόʔͷதͰͳΔ΂͘ӡ༻ͷͨΊͷਓ
    Λ࡞Βͳ͍ʢଐਓԽͤ͞ͳ͍ʣΑ͏ʹ͍ͯ͠Δ
    w ීஈ࢖͍ͬͯΔπʔϧΛߋʹศརʹ֦ு͢Δ
    w 4MBDL (JU)VCͳͲ
    w 4XJGU͕ߦ΋ग़ͯ͜ͳͯ͘ਃ͠༁ͳ͍🙇

    View Slide

  60. View Slide