継続的インテグレーション自前でやってみる計画
「チーム開発実践入門」を読んでみて、仕事以外でやってみたいなと思いつつある。 こういうのは妄想をたっぷり膨らませておくのがモチベに繋がる。なので計画立ててみた。
最終目標:
マスターブランチにマージしたら自動でテストしてデプロイしてくれること。チケットもいい感じに更新してくれること。
ステップ1
チケット駆動でやりたいので、まずはRedMineサーバーを立てる。 若干古い感じがするけど、SIerの現場でためらいなく使えること(要はOSSであること、実績があること)が今回は大事。 AWSでDockerで建てられるっぽい。
ステップ2
それが終わったら、バージョン管理ツール、CIツール、本番環境を用意する。 バージョン管理はGit、中央のリポジトリはGithubを使えばよし。実業務を念頭におくと、アプリ用とDB用でリポジトリを分けるべし。 (アプリとDBはN:1の関係になると思われるので)
CIはJenkinsを使ってみる。Githubとの連携を考えるとTravisCIがいいらしいんだけど、SIerの現場でも使えることを考えるとOSSが良い。 これもAWSでDocker使って立てる。
本番環境はHerokuにする。 多分Docker経由でAWSにあげるのが良いんだろうけど、それは後でいい。
ステップ2の鍵は、Github - Jenkins - Herokuのつなぎ込みだと思う。特にJenkins、触ったことないから画面が想像つかない!
ステップ3
アプリとDBを作ってローカル、ついでHerokuで動かす。 チケット管理をGithub, Jenkins, Herokuに連携させる。
ステップ4
UTを書いてJenkinsに登録する。 カバレッジを楽チンに見られるようにする。
読んでみて
大体はSIerの現場でも経験したことがある(たとえExcel管理であっても)んだけど、DBのスキーマをリポジトリで管理するのは気がつかなった。 あとはローカル環境にDBを構築することも。ローカルから開発環境のDBを参照するのって普通じゃなかったんだね!
読むだけじゃなくて実際に手を動かしながら参照する本なのかもしれない。