2013年9月8日日曜日

JenkinsでWindowsバッチを使う例


途中でエラーが起きたら中断
On Error Gotoなんて便利なものは無いのでエラーが起きそうな行に毎回書く必要がある。
copy a.txt b.txt || exit 1

外部バッチファイルを呼び出す
途中でエラーが起きたら中断
call somebatch.bat || exit 1

Puttyに含まれるplinkを使って外部Unix/Linuxサーバーでコマンドを実行する。事前に公開鍵をサーバー上の~/.sshにいておく。
setlocal
set USER=ssh_username
set SERVER=target_server
set MESSAGE=Success!
rem Jenkinsはユーザーのファイルを読めないので誰でも読める場所に秘密鍵を置く
set RSA_FILE=C:\Windows\SysWOW64\config\systemprofile/.ssh/id_rsa.ppk
set SERVER_COMMAND=echo %MESSAGE%

rem 接続に必要な情報は全て明記。 Jenkinsはセッションファイルを読み込めない。
rem 途中でエラーが起きたら中断
set COMMAND=plink -batch -ssh -agent -i %RSA_FILE% %USER%@%SERVER% %SERVER_COMMAND% || exit 1

rem 出力結果を%RESULTS%に入れる
for /f "delims=" %%i in ('%COMMAND%') do @set RESULTS=%%i

echo %RESULTS%

rem Jenkinsで失敗と判断する為に正常終了の出力でない場合にエラーコードを設定
if not %RESULTS%==Success! exit 1

0 件のコメント:

コメントを投稿