いまさら感が半端ないですがやっと古くからあるプロジェクトでテストコードを書くようになってきたのでそろそろCIを回していく必要があるよねということで導入してみました
とりあえず導入からslack通知まで
まずは、テストがいつ壊れたかわかるようにするというところが目的
※CentOS6系で環境作ってます
javaのインストール
java1.7以上が必要らしいのでインストールする
yum install java-1.8.0-openjdk-devel.x86_64
リポジトリのインストール
cd /etc/yum.repos.d/ curl -OL http://pkg.jenkins-ci.org/redhat/jenkins.repo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
インストール
yum install jenkins
設定、起動
- /etc/sysconfig/jenkins
一台でWEBとかと併用する場合はここの設定をいじる必要があるかも
今回は特に修正しない
JENKINS_PORT="8080" # ポート番号 JENKINS_ARGS="--prefix=/jenkins" # パス
- 起動
/etc/init.d/jenkins start
- デフォルトは8080番でWebにアクセスできる
Webから設定
ソースコード管理
- Subversion
- リポジトリのURLを入力
- 他はデフォルト設定
ビルド・トリガ
- SCMをポーリング
- 一定感覚でソースをチェックアウトするよう設定
- 就業時間中に設定
0 10,11,12,13,14,15,16,17,18,19,20,21 * * *
- 定期的に実行
ビルドを定期的に実行する
10 10,11,12,13,14,15,16,17,18,19,20,21 * * *
- ビルド
- 「シェルスクリプトの実行」にビルドの内容を書いていく
- とりあえず
proveのみ実行するように記述
prove -Ilib -It/lib -lvr $WORKSPACE/t
perl実行環境を整える
プロジェクトのテストを回せるように設定していく
本当はCartonとか使うのがいいはずなんですが、、、とりあえず動かすのを最優先としたので直接サーバに入って温かみのある環境構築を行います
コマンドラインから
シェルの実行が出来ない状態だったので一旦出来る状態にした
# grep jenkins /etc/passwd jenkins:x:493:493:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false # usermod -s /bin/bash jenkins
これでjenkinsユーザーでログイン出来るのでperlのアプリケーション実行環境を作る
- perlbrew
サービスで使っているバージョンが5.16.3なのでそれにあわせてインストールする
curl -kL http://install.perlbrew.pl | bash source ~/perl5/perlbrew/etc/bashrc perlbrew available perlbrew install 5.16.3 perlbrew list perlbrew swich 5.16.3 perlbrew install-cpanm
- モジュールのインストール
cpanfileはあるのでinstalldepsでインストール
cpanm --installdeps .
一部インストール出来ないモジュールを再度インストールして、proveが実行できるところまで
ビルド
Webに戻ってビルドを実行する
コンソール出力を見てテストが実行できていることを確認
Slack連携
ビルド結果をSlackに流す
ここの手順と同じ
slackのintegrationで発行されるドメインとkeyを入力してslackへ通知が行くように設定
ためしにビルドを実行してみる
通知を出せた
一旦ここまで、これでビルドごとに通知が行くようになるのでいつ失敗したかがわかるようになる