2014年10月30日

乾燥ファラオ

いやー、これ知りませんですた。
「すぐ呪う、すごく呪う」って、ギャハハ、センスいいですな。
f-tutan.jpg


posted by NERDY at 17:54 | Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

Jenkins 君を使ってみる2

前回の続きです。

1.テスト実行用リポジトリの作成
  前回こさえた共有リポジトリから複製します。
[root@xxxxx git]# git clone /usr/local/git/hoge.git /usr/local/git/exectest
Cloning into '/usr/local/git/exectest'...
done.

2.Jenkins 君のインストール
  ここら辺りを参考に、yum でインストールしますた。

3.firewalld に穴を開ける
  Jenkins 君は 8080 を使ってるので、こいつを開けます。
  # firewall-cmd --permanent --add-port=8080/tcp

4.グローバルセキュリティの設定
  http://localhost:8080 にアクセスして、Jenkins 君を呼び出します。
  「Jenkinsの管理」→「グローバルセキュリティの設定」をクリック。
  「セキュリティを有効化」をチェックします。
  「アクセス制御」→「ユーザー情報」→「Jenkins のユーザーデータベース」
    →「ユーザーにサインアップを許可」にチェック。
  「アクセス制御」→「管理権限」→「ログイン済みユーザーに許可」にチェック。
  jenkins-secu1.jpg

5.ユーザ作成
  Jenkins トップにて、
  「アカウント登録」→「サインアップ」で作成しますた。

6.ログイン認証の変更
  「Jenkinsの管理」→「グローバルセキュリティの設定」をクリック。
  「アクセス制御」→「ユーザー情報」→「ユーザーにサインアップを許可」のチェックオフ。
  「アクセス制御」→「ユーザー情報」→「管理権限」→「行列による権限設定」をチェック。
  登録済みユーザ名(自分)を入力して、追加をクリック。
  追加したユーザ名(自分)の行のチェックを全て入れる。

7.プラグインのインストール
  「Jenkinsの管理」→「プラグインの管理」をクリック。
  以下の4つをインストール。
  ・Clover PHP plugin
  ・Clover plugin
  ・GIT client plugin
  ・GIT plugin

8.新規ジョブ作成
  「新規ジョブ作成」をクリック。
  「ジョブ名」に任意の値を入力。
  「フリースタイル・プロジェクトのビルド」をチェック。
  「OK」をクリック。
  jenkins-new-job.jpg

  「ソースコード管理」→「Git」をチェック。
  「Repository URL」にテスト実行用リポジトリへのパスを入力。
  「ビルド・トリガ」→「リモートからビルド」をチェック。
  「認証トークン」に任意値を入力。(後述15のフックシェル内で使用
  「ビルド環境」→「Clover を使用して自動的に...」をチェック。
  「ビルド環境」→「履歴レポートの生成」をチェック。
  「ビルド」→「ビルド手順の追加」をクリック時のプルダウンにて、「シェルの実行」をクリック。
  「シェルスクリプト」に、テスト実行用シェルを記述。
  「ビルド後の処理」→「ビルド後の処理の追加」をクリック時のプルダウンにて、
    「Clover カバレッジレポートを集計」をクリック。
  「Cloverレポート ディレクトリ」に「clover」と入力。
  「Cloverレポート ファイル名」に「clover.xml」と入力。
  「カバレッジ メトリックスの対象」に、「70」「80」「80」と入力。
  「保存」をクリック。
  jenkins-new-job2.jpg

9.テスト実行用シェル
  以下の内容を記述。
cd /usr/local/git/exectest
git pull
/usr/local/git/exectest/vendor/phpunit/phpunit/phpunit --configuration /usr/local/git/exectest/phpunit.xml --log-junit $WORKSPACE/clover/unitreport.xml --coverage-html $WORKSPACE/clover --coverage-clover $WORKSPACE/clover/clover.xml /usr/local/git/exectest/app/tests/APITest.php

10.テスト実行用リポジトリの権限設定
  # chown -R jenkins /usr/local/git/exectest
  # chgrp -R git /usr/local/git/exectest

12.phpunit に実行権限を付加
  # cd /usr/local/git/exectest/vendor/phpunit/phpunit
  # chmod 755 phpunit

13.mcrypt 拡張のインストール
  こいつがないと、phpunit が動かないので入れます。
    # yum install php-mcrypt

14.ビルド実行
  「ビルド実行」をクリック。
  あれ?なんかエラー???うきーっ!(2回もやってもた)
  jenkins-exec1.jpg

  /usr/local/git/exectest/.git の中身見てみた。
-rw-r--r-- 1 root root 81 10月 29 16:16 FETCH_HEAD
-rw-r--r-- 1 jenkins git 23 10月 29 10:48 HEAD
-rw-r--r-- 1 root root 41 10月 29 16:06 ORIG_HEAD
drwxr-xr-x 2 jenkins git 6 10月 29 10:48 branches
-rw-r--r-- 1 jenkins git 248 10月 29 10:48 config
-rw-r--r-- 1 jenkins git 73 10月 29 10:48 description
drwxr-xr-x 2 jenkins git 4096 10月 29 10:48 hooks
-rw-r--r-- 1 jenkins git 618472 10月 29 10:48 index
drwxr-xr-x 2 jenkins git 20 10月 29 10:48 info
drwxr-xr-x 3 jenkins git 28 10月 29 10:48 logs
drwxr-xr-x 4 jenkins git 28 10月 29 10:48 objects
-rw-r--r-- 1 jenkins git 107 10月 29 10:48 packed-refs
drwxr-xr-x 5 jenkins git 43 10月 29 10:48 refs

  FETCH_HEAD、ORIG_HEAD の権限おかしいし!
  んで直す。
    # chown jenkins *
    # chgrp git *

  再度、実行。
  今度はうまく行きますた。
  jenkins-exec2.jpg

  jenkins-exec3.jpg

15.共有リポジトリにフックシェルの設置
  /usr/local/git/hoge.git/hooks に、post-update を設置。
  内容は、以下。
  ちなみに、http-user は上述5で作成したユーザでありんす。
#!/bin/sh
wget -q -O /dev/null --auth-no-challenge --http-user=xxxxx --http-password=xxxxx "http://localhost:8080/job/AUTOTEST/build?delay=5sec&token=remote-kick&cause=gitcommit"

if [ "$?" -eq 0 ]; then
 echo "Jenkins build run."
else
 echo "Jenkins build failed."
fi

16.NetBeans 君からプッシュ
  ソースを修正して、コミット、サーバにプッシュ。
  ちゃんと動いてテストされますた。
  jenkins-hook.jpg

17.テスト実行用シェルの修正
  このままだと、Jenkins 君のワークスペースに取り込まれたソースが
  1世代前のものとなってしまう。
  なので、下の赤字の2行を追加。
cd /usr/local/git/exectest
git pull
/usr/local/git/exectest/vendor/phpunit/phpunit/phpunit --configuration /usr/local/git/exectest/phpunit.xml --log-junit $WORKSPACE/clover/unitreport.xml --coverage-html $WORKSPACE/clover --coverage-clover $WORKSPACE/clover/clover.xml /usr/local/git/exectest/app/tests/APITest.php
cd /var/lib/jenkins/workspace/AUTOTEST
git pull origin master

目的達成!あー疲れますた。
posted by NERDY at 13:38 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする

2014年10月27日

Jenkins 君を使ってみる1

サーバは CentOS7 で、Git は既に入ってます。
で、やりたいのは下図のようなこと。
presen.jpg

うおお、ちょっと時間がなくなってしまいますた。
今回は 共有 Git へのプッシュまでということで...

1.共有リポジトリの作成
[root@xxxxx git]# git init --bare hoge.git
Initialized empty Git repository in /usr/local/git/hoge.git/
[root@xxxxx git]#

2.NetBeans 君にて Git リポジトリの初期化
  プロジェクト名を右クリック→「バージョン管理」→「Git リポジトリの初期化」をクリック。
  init-repo.jpg

  そのまま、「OK」をクリック。
  init-repo2.jpg

3.コミット
  プロジェクト名を右クリック→「Git」→「コミット」をクリック。
  git-commit.jpg

  「コミット」をクリック。
  git-commit2.jpg

4.無視解除
  「vendor」フォルダ以下が、何故かバージョン管理対象外となっているので、これを解除。
  musi-kaizyo.jpg

  で、再度、コミット。
  git-commit3.jpg

  git-commit4.jpg

5.共有リポジトリへプッシュ
  プロジェクト名を右クリック→「Git」→「リモート」→「プッシュ」をクリック。
  git-push1.jpg


  「リポジトリ URL」には、「ssh://サーバのIP:ポート/共有リポジトリへのパス」を入力。
  「ユーザー名」「パスワード」には、ssh 接続可能なユーザを指定。
  22番とか、使用するポートは穴開けておかないと、当然失敗します。
  git-push2.jpg

  git-push3.jpg

  git-push4.jpg

  ちなみに、hoge.git フォルダですが、例えば「git」っていうグループ作って、
  このグループに、ここで使用するユーザを参加させとかないと失敗します。
    # chgrp -R git hoge.git
    # chmod -R 775 hoge.git
    # usermod -G git userid-dayo

posted by NERDY at 17:05 | Comment(0) | 技術 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。