Laravel5のお勉強
第一回 環境構築
第二回 ControllerとViewの追加
第三回 Database連携(Mysql)
第四回 モデルの作成/tinker紹介
第五回 テストデータの挿入/Fakerの使用
第六回 CRUDの作成
第七回 Herokuにdeploy
第八回 Circle CIでHerokuにAutoDeploy
前提条件
Mac OS yosemite
PHP 5.5以上
Mysql 5.6以上
Herokuにアカウント登録済み
Githubアカウント登録済み
目的
前回は本番環境としてherokuにdeploy & 公開しました。
しかし、毎回コマンドで
git push heroku master
とか書くのもだるいですし、エンジニアは開発にのみ専念すべきです。
なので、「Deployを自動化します。」
Circle CIを使います。
CIって??
継続的インテグレーションのこと
▼http://itpro.nikkeibp.co.jp/article/COLUMN/20121023/431822/
上記より抜粋
CIとは、ソフトウエア開発においてコンパイルやテストといったビルド処理を一日に何度も実行することにより、フィードバックサイクルを短くし、品質を向上させる仕組みのことです。
今回はCIツールの中でも、Githubアカウントがあれば誰でも無料枠から使えるCircle CIを使います。
https://circleci.com/
Circle CIでLaravelをbuildするのに必要なこと
CircleCIを開いたら、管理画面が表示されるので、githubリポジトリから、対象のアプリを選択すれば良い。
いきなりbuildを行うこともできるが、errorでfailします。
なので、まずはCirclCIを行いたいLaravelアプリのroot直下に以下を作成・配置します。
$ vi circle.yml
1 machine:
2 php:
3 version: 5.6.14
この記述をしないと、デフォルトの設定でbuildが走り、私が試した際は「php 5.3.0でbuildしようとしますが、このアプリが求める最低PHPversionは5.5です」とエラーが吐き出され、failしました。
なので、明示的にCircleCIに
version: 5.6.14
だと教えてあげるのです。
このファイルをgit pushすれば自動でCircle CIが走ります。
今度はSuccessすると思うので、試してみてください。
Circle CIからbuild完了時にherokuにdeployする方法
まずCircle CIからherokuにdeployするためには
- HerokuアプリのAPIKey登録
- HerokuアプリへのSSHKey登録
- Circle CIの設定ファイル(circle.yml)に追記
この作業が必要になりますので、Herokuのアカウント設定から上記2つを作成してください。
ここから設定・取得できます。
SSHKeyはlocal環境で鍵をgenerateしてから、heroku add:keysで登録すればOKです。
鍵の作成は以下
ssh-keygen -t rsa -C "メールアドレス"
上記で作成された公開鍵(id_rsa.pub)をherokuに登録すれば完了です。
heroku keys:add ~/.ssh/id_rsa.pub
あとはCircle CIのdeploy設定画面で、上記の鍵と、APIkeyを設定すれば準備完了。
最後に、ymlを修正です。
$ vi circle.yml
1 machine:
2 php:
3 version: 5.6.14
4 deployment:
5 staging:
6 branch: master
7 heroku:
8 appname: 【あなたが登録したherokuアプリ名(heroku appsコマンドで確認可能)】
実行!!
これで
- localでファイル修正
- git add -> commit -> push!!
- 勝手にbuild -> herokuに最新版がdeploy!!
とHAPPYになれます。
CircleCIでbuildした際に、コマンドを実行したい、例えば、shを叩きたいとか。も簡単にできます。
▼例
commands:
- ./deploy_prod.sh
こんな感じで、「commands」内にいくらでも好きなコマンドを実行できます。