Más contenido relacionado
La actualidad más candente (20)
Similar a jenkinsで遊ぶ (20)
Más de (^-^) togakushi (15)
jenkinsで遊ぶ
- 8. はじめの一歩
► インストール
Javaが入っていればOK
RPMが提供されている
yumリポジトリがある
► テストジョブ作成
はろーわーるど的ななにか
スリースタイルのジョブ
- 9. ジョブの構成
ジョブの定義 ビルドの世代管理/リトライ回数/有効・無効/他のジョブ
が動いてるときの動作/タイムアウトなど
いつ実行するか
ビルド・トリガ 定期/ファイル・ディレクトリが更新されたら・別のジョブ
から/リポジトリが更新されたら/メールボックス/IRC
ビルド環境の整備 ワークスペースの削除/事前に実行するコマンド/ログ
の出力形式
処理内容(シェルスクリプト/Pythonなどなど)
ビルド
何段にでも並べられる
メール通知/別のジョブの呼び出し/成果物の保存
ビルド後の処理
プラグインで拡張
- 13. set -e
► シェルスクリプト内で使用しているコマンドのステータスコードが
非ゼロ(異常終了)した場合に即座にスクリプトをexitするオプ
ション(例外あり)
ログに特定文字列がない場合が正常としたい
→チェックのために「grep word …」すると…
→1件もマッチしないとステータスコードが1
いつでもset +eで効果を打ち消すことができる
► 例外の例
例外その1:「! コマンド」のようにステータスコードを反転させてる場合
例外その2:「コマンド1 | コマンド2 | コマンド3」のように連続したパイプ
処理の中の最後のコマンド以外
例外その3:ifやwhileなどの条件分岐で使われる式
- 16. (寄り道)変数のパラメータ展開
► ${変数名:-単語}
変数が未定義、もしくは空の場合は単語を使う
変数は未定義のまま
► ${変数名:=単語}
変数が未定義、もしくは空の場合は単語を代入してから使う
► ${変数名:?単語}
変数が未定義、もしくは空の場合は単語の内容が表示され
エラーを返す
「${変数:?}」だけでもok
set –uで変数(@と*以外)が未定義の場合は常にエラー
- 17. (寄り道) declare/typeset
► 変数に属性を付ける
typeset –r hoge=‘fuga’
オプション 効果
-i すべて数値として扱う
代入時に算術式評価が行われる
文字列はゼロ
-l 小文字に変換してから代入
-u 大文字に変換してから代入
-r 読み取り専用にする
これ以降の変数の代入はエラー(unsetもできな
い)
- 19. おすすめプラグイン(1)
► Dependency Graph Viewer Plugin
ジョブの繋がりをGraphvizで書いてくれる
► Dis Usage Plugin
ワークスペースの消費量をグラフ化
► Timestamper
ジョブの実行ログの各行に実行時間を追加して出
力
- 20. おすすめプラグイン(2)
► Build-timeout Plugin
指定時間内で終了しなかったジョブをエラーにする
► Jenkins Workspace Cleanup Plugin
ジョブの実行時/終了時にワークスペースを削除す
る
► BuildResultTriggerやjoinなど
ジョブのエラー時に他のジョブを呼び出す
複数のジョブがすべて正常終了しないと次を実行し
ないようにすることもできる
- 28. などなど。
► 定期的に「なんかやって」の暫定運用を助けて
くれる相棒としてjenkinsおっさんが活躍中
► 実際にはリポジトリのShpinxドキュメントを定期
的にビルドしたり、
► リポジトリにコミットしたHPのコンテンツをWeb
サーバにデプロイしたり、
► もう少しちゃんと働いてくれてます