いっきのblog

技術とか色々

Laravel ShiftでLaravelを簡単アップグレード!

Laravel #2 Advent Calendar 2018の11日目です!
今回は、Laravelのアップデートのやり方について書きたいと思います。

バージョンをあげる時の課題

僕らのチームは元々Laravelのバージョンを5.5を使っていて、そろそろあげたいよねって話をしてました。
ただ、「調査や変更による工数がかかる」という(多分心理的な)課題があり、そんな時にメンバーの一人が「Laravel Shift」使えば楽そうですよという話から今回に至りました。

Laravel Shiftとは

簡単にいうと、課金すればLaravelのアップグレードを自動でやってくれるというものです。

laravelshift.com

なかなか便利そうな感じが漂ってますが、いっきにバージョンアップすることはできないので一つずつバージョンをあげていきます。
今回は5.5から5.7にあげたいので、5.5から5.6($9)、5.6から5.7(7$)の計16$でバージョンアップをしたいと思います。

f:id:kzkohashi:20181210202747p:plain

5.5から5.6へのアップグレード

アップグレードは簡単で、GitHubと連携し、クレジットカードを入力すれば始まります。

f:id:kzkohashi:20181210203204p:plain

数分待つと、指定したブランチへプルリクが自動で作られます。
(自分が英語で話した気分になるので、すごくできた気分になれます)

f:id:kzkohashi:20181210203417p:plain

主なプルリクの内容は以下です。

  • PSR-2によるコードスタイルの変更のコミット(準拠してなかったのでいい機会なので変更)
  • アップグレードに伴う各種ファイルの修正コミット
  • 自動で直せない部分を、コメントで教えてくれる

自動で直せない部分もあるのかよっと思うかもしれませんが、コメントで教えてくれるのでそれの通り直すだけなので楽チンです。
修正後は、「ユニットテスト」と「E2Eテスト」をしてバグがないことを確認したらマージします。

5.6から5.7へのアップグレード

こちらも同じように行います。

f:id:kzkohashi:20181210204250p:plain

ユニットテストだと全てのテストを網羅できてないので、E2Eテストはかなり念入りに行い、無事マージ/リリースを行います。

アップグレードによるバグ

大きいバグは1ヶ月たった今もまだありません。
ただ、5.7にあるbootstrap/cacheservices.phppackages.phpのオーナー権限がおかしい問題のせいでデプロイのたびにすごく困ってます・・。
修正済みなので、composer updateすればもう大丈夫です。

github.com

と、おもったら今度はTestResponseJSON周りがおかしくてテストがこける。。。 マージはされたので早くreleaseしてほしいと願っております(12/11現在)

github.com

終わりに

最後はあまり関係ないバグの話になってしまいましたが、かかった工数は全部合わせても数時間です。 たった16$でエンジニアの工数をあまり使わずでき、新規開発にすぐ取り組めて、ビジネスサイドにもほぼ迷惑かからない最高のツールでした。ありがとうございます。