【オンライン開催】YUMEMI.swift #14 〜今年の振り返り〜で発表してきた資料です。 note の iOS チームで進めている自動化のアップデートについてお話ししました。 主に2つの自動化の内容を紹介しています。 ・バグ情報を手軽にリポジトリに溜めたい ・リリースノートを検討するPull Requestを手軽に作成したい
!GSPNLLOPUFJ04νʔϜͷࣗಈԽWFS:6.&.*TXJGU
View Slide
!GSPNLLOPUFJ04νʔϜͷࣗಈԽWFS:6.&.*ࣗಈԽ
ৼΓฦΓ
͋Ε͔ΒҎ্ܦաͨ͠ͷͰΞοϓσʔτΛհ
࣍w όάใΛखܰʹϦϙδτϦʹཷΊ͍ͨw ϦϦʔεϊʔτΛݕ౼͢Δ1VMM3FRVFTUΛखܰʹ࡞͍ͨ͠
όάใΛखܰʹϦϙδτϦʹཷΊ͍ͨ
ΣϒɾΞϓϦͱʹ࣭͕՝ʹw 2"νʔϜ͕͓Βͣɺ։ൃऀɾσβΠφʔ1.ʹΑΔಈ࡞֬ೝɺϢχοτςετ&&ςετͰ࣭ΛΧόʔ͍ͯ͠Δw ΤϯδχΞͷਓ͕૿͑ͨΓαʔϏεͷنେ͖͘ͳ͖ͬͯͨͷͰ࣭ͷ୲อ͕͘͠ͳ͖ͬͯͨw ϦϦʔεޙͷόάमਖ਼ΛͳΔ͘ݮΒ͍ͨ͠
ΣϒɾΞϓϦͱʹ࣭͕՝ʹw 2"νʔϜ͕͓Βͣɺ։ൃऀɾσβΠφʔ1.ʹΑΔಈ࡞֬ೝɺϢχοτςετ&&ςετͰ࣭ΛΧόʔ͍ͯ͠Δw ΤϯδχΞͷਓ͕૿͑ͨΓαʔϏεͷنେ͖͘ͳ͖ͬͯͨͷͰ࣭ͷ୲อ͕͘͠ͳ͖ͬͯͨw ϦϦʔεޙͷόάमਖ਼ΛͳΔ͘ݮΒ͍ͨ͠w ͲΜͳෆ۩߹͕ଟ͍ͷ͔Λ·ͣΓ͍ͨ
όάͷछྨΛՄࢹԽ͍ͨ͠w ϦϦʔεલʹݟ͚ͭͨόάw ϦϦʔεޙʹΤϯδχΞ͕ݟ͚ͭͨόάw ϦϦʔεޙʹ͍߹Θ͕ͤ͋ͬͯ$4͔Βใࠂ͕͋ͬͨόά
όάͷछྨΛՄࢹԽ͍ͨ͠w ϦϦʔεલʹݟ͚ͭͨόάw ϦϦʔεޙʹΤϯδχΞ͕ݟ͚ͭͨόάw ϦϦʔεޙʹ͍߹Θ͕ͤ͋ͬͯ$4͔Βใࠂ͕͋ͬͨόάˣޙΖʹ͍͘΄ͲΫϦςΟΧϧ
όάτϥοΩϯάͷॴͷݕ౼w (JU)VC*TTVFTw ;FO)VCw +JSBw #BDLMPHw 3FENJOFw FUDʜ
όάτϥοΩϯάͷॴͷݕ౼w (JU)VC*TTVFTʢΈΜͳ͕׳ΕͯΔʣw ;FO)VCw +JSBw #BDLMPHw 3FENJOFw FUDʜ
(JU)VC*TTVFTλΠτϧ༰QMBUGPSN༻ϥϕϧϑΣʔζ༻ϥϕϧ
ਖ਼໘͍͘͞खͰଧͭͷ
ࣗಈԽ͠Α͏
छྨͷࣗಈԽ 4MBDLͷϝοηʔδΛ*TTVFԽ طʹ͋Δ*TTVF 1VMM3FRVFTUΛผͷϦϙδτϦͷ*TTVFʹίϐʔ
4MBDLͷϝοηʔδΛ*TTVFԽ
IUUQTOPUFDPNMBQSBTESVNOOCDEEࢀߟ
ϑΣʔζ͝ͱͷֆจࣈΛ༻ҙJPT@CVH@CFGPSF@SFMFBTF JPT@CVH@PO@QSPE JPT@CVH@GSPN@DT
/FX3FBDUJPO"EEFEJO4MBDLઃఆͨ͠ֆจࣈ4MBDLͷνϟϯωϧ໊
3VOKBWBTDSJQUϝοηʔδͷߦͱͦΕҎ֎ͷߦΛׂ
$SFBUF*TTVFJO(JU)VCCVHUSBDLJOHϦϙδτϦQMBUGPSN QIBTF༻ͷϥϕϧ
4FOE$IBOOFM.FTTBHFJO4MBDLɾɾɾ
݁Ռ
ͱָͯ🎉
طʹ͋Δ*TTVF 1VMM3FRVFTUΛผͷϦϙδτϦͷ*TTVFʹίϐʔ
;BQͷ֓ཁ
$BUDI)PPL63-Λ߇͓͑ͯ͘
1BUIͷઃఆ1BZMPBE1VMM3FRVFTU/BNF͕ଘࡏ͠ɺ1BZMPBE"DUJPOʹMBCFMFEΛؚΜͰ͍Δ߹1VMM3FRVFTUಉ༷ʹ1BZMPBE*TTVF/BNF͕ଘࡏ͠ɺ1BZMPBE"DUJPOʹMBCFMFEΛؚΜͰ͍Δ߹*TTVFͱͯ͠ѻ͏
'JMUFSͷઃఆ༩͞ΕͨϥϕϧΛϑΟϧλϦϯά
3VOKBWBTDSJQUίϐʔݩͱίϐʔઌͷϥϕϧΛϚοϐϯά
$SFBUF*TTVFJO(JU)VC4MBDLͷϝοηʔδΛJTTVFԽͱಉ༷3VOKBWBTDSJQUͰ࡞ͨ͠ϥϕϧίϐʔઌͷϦϙδτϦ
(JU)VCͰ8FCIPPLTͷઃఆ߇͓͍͑ͯͨ63-Λઃఆ*TTVFT 1VMMSFRVFTUʹνΣοΫ
ϦϦʔεϊʔτΛݕ౼͢Δ1VMM3FRVFTUΛखܰʹ࡞͍ͨ͠
IUUQTOPUFDPNZSJJDBOOEDGBG
ϦϦʔεϊʔτͷྲྀΕ
ϦϦʔεϊʔτ࡞ͷྲྀΕ 4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ ;BQJFS͔Β$JSDMF$*Λݺͼग़͠ $JSDMF$*ͰIPUfiY\/&95@7&34*0/^SFMFBTF@OPUFϒϥϯνΛ࡞ ;BQJFS͔Β1VMM3FRVFTUΛ࡞
ϦϦʔεϊʔτ࡞ͷྲྀΕ 4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ ;BQJFS͔Β$JSDMF$*Λݺͼग़͠ $JSDMF$*ͰIPUfiY\/&95@7&34*0/^SFMFBTF@OPUFϒϥϯνΛ࡞ ;BQJFS͔Β1VMM3FRVFTUΛ࡞ޙΖ͔Βઆ໌
;BQJFS͔Β1VMM3FRVFTUΛ࡞
̎$SFBUF1VMM3FRVFTUJO(JU)VCϦϙδτϦΛબޙͷใνʔϜ͝ͱʹదʹઃఆ
4FOE$IBOOFM.FTTBHFJO4MBDL
$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" = "" ]; thenNEXT_VERSION=${BRANCH##*/}fiecho $NEXT_VERSIONgit reset --hard HEADgit 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}` ]]; thenecho "Branch name $NEW_BRANCH_NAME already exists."elseecho "Branch name $NEW_BRANCH_NAME not exists."git checkout -b $NEW_BRANCH_NAMEecho "for ${NEXT_VERSION}" >> ./fastlane/metadata/en-US/release_notes.txtgit add .git commit -m "[ci skip] [auto commit] update release note"git push origin hotfix/${NEXT_VERSION}/release_notecurl -X POST -d "version=${NEXT_VERSION}" https://hooks.zapier.com/hooks/catch/999999/XXXXXX/fi(JU)VCʹϒϥϯν͕͋Δ͔ແ͚ΕϒϥϯνΛ࡞దͳमਖ਼ΛՃ͑ͯ1VTI;BQJFS͔Β1VMM3FRVFTUΛ࡞Ͱ࡞ͬͨ63-Λୟ͘
;BQJFS͔Β$JSDMF$*Λ࣮ߦ
3VO1ZUIPOαʔΫϧ$*ͷτʔΫϯ
4MBDLͰDSFBUF@SFMFBTF@OPUF\/&95@7&34*0/^Λ࣮ߦ
4MBTI$PNNBOEͷઃఆ;BQJFS͔Β$JSDMF$*Λ࣮ߦͰ࡞ͨ͠63-Λઃఆ
·ͱΊw OPUFࣾͷΞϓϦνʔϜͰݶΒΕͨϝϯόʔͷதͰͳΔ͘ӡ༻ͷͨΊͷਓΛ࡞Βͳ͍ʢଐਓԽͤ͞ͳ͍ʣΑ͏ʹ͍ͯ͠Δw ීஈ͍ͬͯΔπʔϧΛߋʹศརʹ֦ு͢Δw 4MBDL (JU)VCͳͲw 4XJGU͕ߦग़ͯ͜ͳͯ͘ਃ͠༁ͳ͍🙇