GitHub + Circle CI で幸せになろう
自己紹介
株式会社 tech vein
上田 信尋
WEBエンジニア
php大好き
Yii2 大好き
Circle CI って?
GitHub と連携してCIを実行出来るサービス
基本無料
かなり色々出来る
簡易版Jenkinsのような存在?
Slack連携OK!!
GITHUB アカウントでサインアップ
設定したリポジトリ内のブランチが表示されてればOK
どんなことが出来るのか
GitHub リポジトリにpushとかをしたら色々自動で実行してくれる
テスト
デプロイ
設定は リポジトリ直下に circle.yml を置いて設定してやる
設定ファイルにはテストとかをymlで書く
Circle CIにテスト環境を作る?
Dockerを使って環境を作ることは可能
ただメモリが少ないのでかなり厳しい
DBがあるならテストのたんびにインポートが走ってえらい時間がかかる
composer install もテストのたんびにやってたらえらい時間がかかる
LAMP環境そのたびに作るのもしんどい
テストサーバーにデプロイしてからテストを実行する
Dockerでubuntuのコンテナが立ち上がってるのでそこからSSHでデプロイコマンドを実行してしまおう
Circle CI にSSH秘密鍵を設定する
設定したコマンドは上から順番に実行される失敗した場合はその場で停止する
テストまでの流れ
Circle CI からテストサーバーに対してデプロイコマンドを実行(git pull)とか
Circle CI からテストサーバーに対してテストを実行する(codeceptionとか)
プルリク作成の時も自動でテストしてくれるテストが失敗すると怒ってくれる
テストをパスした後に動くデプロイを設定してやる
テストやデプロイの設定はブランチごとに設定出来る!
ブランチごとに設定出来るということは…
develop ブランチにコミット
テストが通ったらテストサーバーにデプロイ
release ブランチにコミット
テストが通ったらレビューサーバーにデプロイ
master ブランチにコミット
テストが通ったら本番環境にデプロイ
面倒なテストやデプロイ作業が全部自動に!結果はSlackなんかで教えてくれる!
登録や設定はとても簡単なのでGithubを使っているところは是非使いましょう!
Githubを使ってないところはごめんなさい