Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(1)
Vagrantを触ってみた - think it overにも書いたように、
Web開発にまつわる開発環境を「モダンないい感じ」にしたい!!!
という目的でこれまでいろいろと調査・実践してきました。
その総集編を複数回に分けて取り纏めてみようと思います。
題して、
Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする
- PHPerじゃない方ごめんなさい。
- 当方Windowsですごめんなさい。
計画
以下を考えています。(途中で増減・見直し等あるかもしれません)
[2013/05/21] 見直し:「JenkinsでCIする」を分割
- イテレーション 0: 準備
- タスク 0-1: 必要なソフトウェアをインストールする
- タスク 0-2: GitLabのアカウントを作成する
- イテレーション A: Symfony2でプロジェクトをはじめる
- イテレーション B: Phingでプロジェクトをビルドする
- タスク B-1: Phingを導入する
- タスク B-2: PhingとPHPUnitを連携する
- イテレーション C: JenkinsをVagrantで構築する
- タスク C-1: VMを初期化する
- タスク C-2: 構築に必要なCookbooksを取得・作成する
- タスク C-3: Jenkinsを起動する
- イテレーション D: JenkinsでCIする
- タスク D-1: Jenkinsにプロジェクトを設定する
- タスク D-2: テストレポートを表示できるように設定する
- タスク D-3: コードカバレッジレポートを表示できるように設定する
- イテレーション E: 各種ツールの導入
- タスク E-1 PHPMDを導入する
- タスク E-2 PHPCSを導入する
Webからはこれらの情報は断片は手に入るのですが、まとまったものがなかなか見当たらないので、頑張ってみます。
本題に入る前にちょっとだけ計画の背景を。
- なぜSymfony2?
- 建前:Composerに対応&PSRに準拠している。
- 本音:もともと慣れているので。
- なぜGitLab?
- 建前:ゆくゆくは社内開発で利用したい。
- 本音:GitHub Enterpriseいいなー。たけぇなー。
では本題です。
初回は準備をします。
イテレーション 0: 準備
タスク 0-1: 必要なソフトウェアをインストールする
これからのタスクを進めるために必要な以下をインストールします。
多少のバージョンの違いは大丈夫なはず。たぶん。
- Ruby(http://rubyinstaller.org)
- 1.9.3p429 (2013-05-15) [i386-mingw32]
- gems
- vagrant
- 1.0.7
- chef
- 11.4.4
- vagrant
- Git(http://windows.github.com/)
- 1.8.1.msysgit.1
- Oracle VirtualBox(https://www.virtualbox.org/)
- 4.2.12 r84980
インストールできたら、
それぞれを環境変数PATHに追加します。
なお、GitHub for WindowsについてきたGitの場合、
C:\Users\{$user}\AppData\Local\GitHub\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\bin\
こんな感じのところに実体がいるはずです。
タスク 0-2:GitLabのアカウントを作成する
http://www.gitlab.com/ のヘッダーにある「Sign up」より、アカウントを作成しておきます。
以上です。
第2回:イテレーション A: Symfony2でプロジェクトをはじめる
第3回:イテレーション B: Phingでプロジェクトをビルドする
第4回:イテレーション C: JenkinsをVagrantで構築する
第5回:イテレーション D: JenkinsでCIする
第6回:イテレーション E: 各種ツールの導入