読者です 読者をやめる 読者になる 読者になる

kaakaa Blog

この世は極楽 空にはとんぼ

vagrant&chefで構築した仮想CentOS上JenkinsでGoogle Testを実行

タイトルが長い。
細かくは覚えてないけど、やったことの備忘録。

Vagrant&Chefで仮想CentOS(Jenkins入り)を構築

いろいろ調べながらだったけど、何があったか覚えてないので実行環境だけ残しておきます。

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "base"
  config.vm.box_url = "http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box"
  config.vm.network :private_network, ip: "192.168.50.12"
  config.vm.provision :chef_solo do |chef|
    chef.add_recipe("apache2")
    chef.add_recipe("java")
    chef.add_recipe("jenkins::server")
  end
end

Vagrantfileと同じ階層にcookbooksディレクトリを作って、そのなかにopscodeのcookbookを入れました。
Chef Community Cookbooks · GitHub

vagrant ssh接続

ここらへんが一番ハマった気がするけど、結局どう解決したかあんま覚えてない… ^^;
まだまだsshへの苦手意識は解消できないようです。

VagrantでVirtualboxの仮想マシンを作成 on Windows - chulip.org
Windows の MinGW 環境で vagrant ssh するには - エンジニアきまぐれTips

仮想環境のセッティング

本来ならばレシピかするべきなのでしょうが、手作業で必要なものを入れました。
ヘタレです。

  • service httpd|jenkins start
  • service iptables stop
  • yum install -y cmake gcc-c++
    • GoogleTestをCentOS上でビルドするため
  • git
    • Jenkinsでのソース取得用に入れましたが、もしかしたらJenkinsのGit plugin入れるだけで良かったかも

GoogleTestのビルド

下記を参考に
Google Testのインストールメモ « StudioT::DevLog

Jenkinsから使うために、GoogleTestのディレクトリは/var/lib配下に移動。
自分はユーザvagrantのホームディレクトリ上にGoogleTestを置いてしまい、Jenkinsで実行しようとしてもPermission Deniedと言われ、ハマリました。

Git

ホストWindows上で作ったVisualStudioプロジェクトを仮想空間上で取得するために、ホスト上にGitリポジトリを立てました。

やり方は下記参照。
Thinking megane: WindowsでGit共有リポジトリをさくっと構築

Jenkins上でGoogleTestを実行

実行についてはこちらを参照。
Google Testを動かしてみる « StudioT::DevLog

テスト結果のxml出力にはここらへんを参考にしました。
Jenkinsでgoogle-test - Public Notes / Textt
ブログズミ: Google Test を使ってみる - その6(Jenkins との連携、スキップ対応)

結果

Jenkinsでの実行コマンド

rm -fr result

g++ -I/var/lib/gtest_mock/gmock-1.6.0/gtest/include KaorunTest2.cpp -o test /var/lib/gtest_mock/gmock-1.6.0/gtest/libgtest_main.a /var/lib/gtest_mock/gmock-1.6.0/gtest/libgtest.a -lpthread

mkdir result

./test --gtest_output="xml:result/"


      • -

今回やったこととは関係ないけど、MinGWで作った半透明のターミナルウィンドウはモチベーション維持に効果を発揮した。
Windowsで最高のターミナルを構築する方法 - 純粋関数空間