Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(1)

Vagrantを触ってみた - think it overにも書いたように、

Web開発にまつわる開発環境を「モダンないい感じ」にしたい!!!

という目的でこれまでいろいろと調査・実践してきました。

その総集編を複数回に分けて取り纏めてみようと思います。

題して、

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする

  • PHPerじゃない方ごめんなさい。
  • 当方Windowsですごめんなさい。

計画

以下を考えています。(途中で増減・見直し等あるかもしれません)


[2013/05/21] 見直し:「JenkinsでCIする」を分割

  1. イテレーション 0: 準備
    1. タスク 0-1: 必要なソフトウェアをインストールする
    2. タスク 0-2: GitLabのアカウントを作成する
  2. イテレーション A: Symfony2でプロジェクトをはじめる
    1. タスク A-1: Symfony2プロジェクトを作成する
    2. タスク A-2: GitLabでソースコードを管理する
    3. タスク A-3: PHPUnitを導入する
  3. イテレーション B: Phingでプロジェクトをビルドする
    1. タスク B-1: Phingを導入する
    2. タスク B-2: PhingとPHPUnitを連携する
  4. イテレーション C: JenkinsをVagrantで構築する
    1. タスク C-1: VMを初期化する
    2. タスク C-2: 構築に必要なCookbooksを取得・作成する
    3. タスク C-3: Jenkinsを起動する
  5. イテレーション D: JenkinsでCIする
    1. タスク D-1: Jenkinsにプロジェクトを設定する
    2. タスク D-2: テストレポートを表示できるように設定する
    3. タスク D-3: コードカバレッジレポートを表示できるように設定する
  6. イテレーション E: 各種ツールの導入
    1. タスク E-1 PHPMDを導入する
    2. タスク E-2 PHPCSを導入する


Webからはこれらの情報は断片は手に入るのですが、まとまったものがなかなか見当たらないので、頑張ってみます。

本題に入る前にちょっとだけ計画の背景を。

  • なぜSymfony2?
    • 建前:Composerに対応&PSRに準拠している。
    • 本音:もともと慣れているので。
  • なぜGitLab?
    • 建前:ゆくゆくは社内開発で利用したい。
    • 本音:GitHub Enterpriseいいなー。たけぇなー。


では本題です。

初回は準備をします。


イテレーション 0: 準備

タスク 0-1: 必要なソフトウェアをインストールする

これからのタスクを進めるために必要な以下をインストールします。
多少のバージョンの違いは大丈夫なはず。たぶん。

インストールできたら、

それぞれを環境変数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: 各種ツールの導入