Jenkins without Install

15
インストルしないでJenkins

description

How to use run unit test on server from Jenkins on Windows without install

Transcript of Jenkins without Install

Page 1: Jenkins without Install

インストールしないでJenkins

Page 2: Jenkins without Install

自己紹介

● 徳納 弘和 (とくのう ひろかず)● 某社の工場のITシステム部門● 39才にしてIT部門へ移動して4年目

– 遅れを取り戻すべく日夜勉強中

● 少し覚えた言語– VBA, Java, Perl, Shell...

● コードを極力書かないのがお気に入り

– Pentaho ETL, Mojolicious

Page 3: Jenkins without Install

目的

● サーバーにインストールするのは大人の事情で無理!でもJenkins使って自動テストする

● 前提

– サーバーには何もインストールしない

– 手元にはWindows PCがある

– Windowsにも何もインストールしない

– サーバーに直接ログイン出来るアカウントでテストを実行出来る

● 得られる結果

– Jenkinsからサーバーでテストを実行、結果を収集

Page 4: Jenkins without Install

用意するもの

● Putty Portable : サーバーへの接続● Jenkins : 継続的インテグレーションサーバー● xUnitの何か

– シェルのユニットテストshunit2を使ってみました

● 気合い

Page 5: Jenkins without Install

Putty Portable 1/2 鍵作成

● PUTTYGENで鍵を生成する– %PuTTYPortable%

¥App¥putty¥PUTTYGEN.EXEを実行– Generateを押す– マウスを元気よく動かす

● 秘密鍵をid_rsa.ppk,公開鍵をid_rsa.pub という名前で保存– Key passphrase

● 鍵を使う時に必要なパスワードを設定した方が良い

– 秘密鍵 : Save private key

– 公開鍵 : Save Public key

Page 6: Jenkins without Install

Putty Portable 2/2 鍵の登録● 公開鍵をサーバーにコピー

– pscp id_rsa.pub [email protected]:id_rsa.pub

– 初めて接続する場合、以下のメッセージが出るのでyを押すThe server's host key is not cached in the registry.

~中略~

Store key in cache? (y/n) ● サーバー上で公開鍵を登録

mkdir ~/.sshchmod 700 ~/.sshcd ~/.sshssh-keygen -i -f ~/id_rsa.pub >> authorized_keyschmod 600 authorized_keysrm ~/id_rsa.pub

Page 7: Jenkins without Install

Pagent

● 鍵を使う度にパスワードを聞かれない様にPagentを使う%PuTTYPortable%\App\putty\PAGEANT.EXE "%HOMEDRIVE%%HOMEPATH%\id_rsa.ppk"

● スタートアップに入れると良いかも?

Page 8: Jenkins without Install

shunit2

● shuni2 2.1系を展開– 2.0系ではJenkinsがSuccess/Failure判定が出来ない

– tar zxvf shunit2-2.1.6.tgz

~/Test/test_pass.sh

#! /bin/sh

testPass(){ assertEquals 1 1}

# load shunit2. ~/Test/shunit2

~/Test/test_mix.sh#! /bin/sh

testPass(){ assertEquals 1 1}

testFail(){ assetEquals 1 0}# load shunit2. ~/Test/shunit2

Page 9: Jenkins without Install

Jenkinsの設定 1/2

● 先ずは起動java -jar %Jenkins%\jenkins.war

● 新規Job作成

– フリースタイルを選択

Page 10: Jenkins without Install

Jenkinsの設定 2/2

● ビルド / ビルド手順の追加 / Windowsバッチコマンドの実行

– PUTTY_PATHやRSA_FILEは環境に合わせて変えて下さい

setlocalset PUTTY_PATH="D:\PortableApps\PuTTYPortable\App\putty\"set USER=your_userset SERVER=some_serverset RSA_FILE="%HOMEDRIVE%%HOMEPATH%\id_rsa.ppk"set SERVER_COMMAND=sh ~/Test/test_pass.sh%PUTTY_PATH%plink -batch -ssh -i %RSA_FILE% %USER%@%SERVER% %SERVER_COMMAND%

Page 11: Jenkins without Install

Jobの実行

Page 12: Jenkins without Install

結果確認

Page 13: Jenkins without Install

結果 1/2 Success

● 全ての結果がPassするとSuccessになる

Page 14: Jenkins without Install

結果 2/2 Failure

● 1つでも失敗するとFailure

Page 15: Jenkins without Install

まとめ

● インストールしなくてもJenkinsで自動テストが出来る– 手元のPCからサーバー側のスクリプトを実行

● Jenkinsからサーバー上でのshunit2の結果を判定出来た