第128回PHP勉強会@東京でLTをした、自動的に composer updateを実行する仕組みについての発表資料です。
https://github.com/o0h/composer-update-request
Composer updateΛࣗಈԽͨ͠ୈ128ճ PHPษڧձˏ౦ژHideki Kinjyotwitter: @o0h_ / github: o0h
View Slide
ࣗݾհ• ίωώτגࣜձࣾ• αʔόʔαΠυΤϯδχΞ• ओʹCakePHPͳͲ
Έͳ͞ΜɺComposerͷϥΠϒϥϦͷߋ৽͍ͯ͠·͔͢ʁ
Έͳ͞ΜɺComposerͷϥΠϒϥϦͷߋ৽͍ͯ͠·͢ɾɾɾΑͶʁ
ࠓɺϥΠϒϥϦߋ৽ʹؔ͢Δ (໘͍͘͞ͳͱײ͡Δ)
※ϚαΧϦճආখ·Ίʹߋ৽͢Δɺ͕ ʮઈରʹਖ਼ղͩʯͱࢥ͍·ͤΜ͕ɻ νʔϜϓϩμΫτʹΑΔͣɻ
ϥΠϒϥϦߋ৽ɺαϘ͍ͬͯΔͱ• ͕ࠩσΧ͘ͳΓ͗͢Δͱಈ࡞֬ೝҰେࣄ• ੬ऑੑͱ͔Ξφϯε͞Εͯ ಈ͖औΓͮΒ͔ͬͨΓ• (ຊ࣭తͳϓϩμΫτ։ൃͰͳ͍෦Ͱͷ) ख͕ؒେ͖͘ͳΔ͡Όͳ͍Ͱ͔͢
ͱ͍͑ɺͪΐ͍ͪΐ͍໘͍͘͞• ΕΔ͠• ಈ࡞֬ೝͱΒͳ͍ͱͩ͠• ࡞ۀऀʹΑͬͯ֬ೝͷ༰ҧ͍ͦ͏ͩ͠ɻ• खॱॻ࡞Δɾɾʁ• composer.lockͷdiffΈʹ͍͘͠
ίίΒลΛ·ΔͬͱͲ͏ʹ͔͍ͨ͠ʙ
ଞݴޠͷ߹ɾɾ
JS: npm
JS: yarn
Ruby: bundle
͜Ε͕PHPʹ΄͍͠…ʂ
ͭͬͨ͘ɻ※·ͩ ver 0.1Ͱ͕͢ɻɻ
o0h/composer-update-request• উखʹߋ৽(ͷ४උ)Λͤ͞Δͷ• CIͰఆظతʹճ͢͜ͱΛఆ• https://github.com/o0h/composer-update-request
ػೳ• ߋ৽ΛνΣοΫ͠ɺ composer.lockʹ͕ࠩ͋ΕPRΛଧͭ• ϥΠϒϥϦͷมߋ༰(version change)Λهड़• PRςϯϓϨʔτ• ࢦఆ͓͍ͯͨ͠ΞΧϯτͷΞαΠϯ
Έ• Composer Pluginͱͯ͠࡞ಈ• (CI্Ͱ)ఆظతʹ `composer update` ΛࠐΜͰ͓͘• PRE_UPDATE_CMD / POST_UPDATE_CMDʹhook• updateલޙͰ composer.lockʹࠩҟ͕͋ΕPRΛ࡞
͜Μͳײ͡ͷهड़Λ͓ͯ͘͠=> ࣗಈతʹPR͕ಧ͘ʂ※.travis.yml
ߋ৽͞Εͨ༰ͱґଘؔҙͷPRςϯϓϨʔτ (ಈ࡞֬ೝ߲ɺखॱΛهड़͢Δఆ)
ͱ͍͑ɺͪΐ͍ͪΐ͍໘ׂ͍͘͞ͱվળͰ͖ͦ͏ʂ• ΕΔ͠• ಈ࡞֬ೝͱΒͳ͍ͱͩ͠• composer.lockͷdiffΈʹ͍͘͠➡ উखʹདྷΔ➡ νΣοΫ߲ΛPRʹఴͰ͖Δ➡ ύοτݟͰ͔ΔΑ͏ͳࠩͷهड़
ײ && ͬͯΈͯྑ͔ͬͨࣄ• (લఏɺςετ͕͔ͬ͠Γॻ͔Ε͍ͯͳ͍ͱਏ͍)• ߋ৽Εͳ͘ͳͬͨ• ֬ೝ࡞ۀͷ༰ΛۉҰԽͰ͖ͨ• (ཷΊա͗ͳ͚Εɺ) ߋ৽ࠩΛ͏ͷͦ͜·Ͱखؒ͡Όͳ͍• “࠷৽ιϑτͬͯ·͢”ͬͯࢥ͑Δͷͪΐͬͱָ͍͠
ࠓޙͷ༧ఆ• CircleCIରԠ͍ͨ͠ʂ• औΓࠐ·ΕͨόʔδϣϯͷreleasesͷURLΛషΓ͍ͨ• ςετ͕ͳ͍ɾɾɾɾɾɾɾɾɾɾ
ँࣙ:ࢮ͵΄Ͳࢀߟʹͨ͠ࢿྉhttps://speakerdeck.com/hirak/phpcon2016
͓͖߹͍͍͖ͨͩ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ