mfks17's blog(Life is Good !!)

趣味や思った事を書いていくと思います

第7回Jenkins勉強会に参加してきました#jenkinsstudy


当日の詳細

今回の発表

発表者

1、川口さん(Jenkins開発者)<−Ubuntu使ってた。環境気になる
プラグイン福袋(最近作っているプラグインの話)

2,天久さん
組み込み業界よくあるjenkins環境構築例

3,馬場さん
キヤノンにおけるjenkins状況

4,atottoさん
jenkinsを使うゆうになったきっかけ、EclipseC++プロジェクトを簡単にjenkinsでビルドする方法

お知らせ

なんと、今年も要望多数の場合は去年行った、JenkinsユーザーConferrenseがあるかもしれないとのことです。
そこで、どんなことをやって欲しいか募集中だそうです。
Twitterとかでつぶやいたら、いいことがあるかもしれないです。

個人的まとめ

川口さん


最近作っているプラグインリストの紹介

データベースプラグイン

すべてをXMLで保存するのは無理がある
起動・クエリ速度の向上
大規模インスタンスへの対応
でも本当は、作るのが面白そうだったから、、、


テストデータの実行時間履歴
ファイル指紋
コードカバレッジレポート

jenkins全体用
プロジェクト毎用

JAP2をサポート

データベースを使うプラグインが増えてきた
需要があがっている?
会場でも、そういうニーズの方がいらっしゃいました。

例えば、
Jenkowプラグイン
Audit と Databese


レシピプラグイン

今案ことでお困りの方

jenkinsを始めたいけど使い方がわからない方
プラグインを作ったけど設定がわからない方

製品(管理している)チームに7割くらいjenkinsの設定ができているやつを提供できるようになる

エクスポートできてコミュニティに公開できる

反対に インストールもできる

そのjobで使っているプラグインも記憶していて、依存関係も解決してくれる

なので、自動でプラグインもインストールする

定型のパターンを共有できる

jobも自動で作成

すばらしい


リモートターミナルプラグイン

ローカルで動いてjenkin上で動かないなんとことありませんか?

バッチ処理のデバッグがしたい
対話的なスクリプトの開発
jenkins上で失敗する原因の発見


jenkins上で
インタラクティブターミナル起動

できること

  • jenkinsの環境をいじれる
  • 環境変数とかがっつり 分かる、スレーブで実行
  • 原因究明の為にjobが終わる前にターミナ待ちに状態になる

その間に、原因を特定する

  • もちろんviも動く

できないこと

  • コピペができない

やっぱりターミナルだから、本物のターミナル使いたいですよね。

  • SSHアクセスで実際のターミナルで作業できる
  • slももちろん動く
  • トンネル プロキシコマンド おまじない

天久さん


組み込み業界よくあるjenkins環境構築例

品質に関わるツールを扱っている会社に勤めている

単体テストの支援ツール

jenkinsとの関係

  • テストツールとしてjenkinsを勧めている
  • jenkinsとテストツールを組み合わせた環境jを構築している


アジェンダ

  • 組み込み業界でもjenkins
  • 既存、新規のユーザともに、jenkinsに関係した問い合わせが増えて着る

よく聞く声

  • 事例がない
  • エンタープライズの話ばかり

みんなどうやってるのか知りたい

jenkinsを使ってソリューションを提供している。

  • 組み込だからというものではない
  • 一般的な環境がほとんど


よくある環境の構築例

  • マスターからスレーブ2つ テスト ビルド

組み込っぽいとこ

単体テスト

ビルドパイプライン

  • マージー>モジュール作成

その他、アマゾンEC2への環境構築例もある
でも、組み込み系はソースコードを出したがらない。
クラウド環境(VPNでつなぐとか)なら有り

まだやってないこと

  • jenkinsから実記でのtんたいてすと自動化
  • ソースコードレビュー gerrit

まとめ

  • 組み込みだからといって特別なことはほとんどない
  • 一般的な環境がほとんど
  • まずは、やってみることから

質疑応答

  • iOS は実機をスレーブにつないでとか、やろうという取り組みはある
  • Androidはそういったソリューションが結構あるみたい

馬場さん


キヤノンにおけるjenkins状況

jenkins導入の経緯

  • 品質向上テスト自動化

本日の話題

  • テーマ・チーム数が多く、さまざまなチームがある
  • 開発はC/C++が大半

全体構成

  • Summery Reportプラグイン(キャノンさん内製プラグイン)

jenkins利用状況
・jenkinsボード(チームの仕事ぶりを見える化)

  • 概ねチームごとにマスターを分散
  • セキュリティー、使い勝手優先
  • 現在30マスター
  • 同一マシンでもスレーブ化
  • 最近は同一マシンでも複数マスター

標準設定・プラグイン混みのjenkinsテンプレートー>立ち上げは1分

内政のプラグイン

  • ビルド結果のサマリーのみレポート

機能はシンプル

ー 履歴グラフ、結果判定、ダッシュボードビュー

  • 現在19個〜ツールXレポート種類委
  • カスタムレポートプラグイン
  • LCOVのカバレッジ結果

全体傾向

  • ばらつきは多いが、おおむね有効活用できている
  • テスト作成、意識

ちょっと問題

  • カスタムワークスペース利用が多い
  • クリーンビルドできているか?
  • 静的チェックの活用はいまいち?
  • たくさんビルドしていても、結果をちゃんとみない?
  • summery Repoertや結果判定機能を活用できていないチームも

トラブル

  • 深夜ビルドで商用ライセンスがとれない(現在深刻な問題)
  • テストマシンの確保

まとめ

  • 目的は継続CIでは」ない継続的テスト
  • ボク個人的には、ツイートされていたかたもいらっしゃいましたが、テストセカンドでもいい。書くことが重要というのがとても共感できました。そして、キャノンさん事例はとても学ぶことが多く、上の人に「継続的CI」ではなく「継続的テスト」とあえて言って、わかりやすく説明した話も技術ネタあるあるっぽいなと思いました。

質疑応答

  • 導入した前と後でのへんかは?

独特のUIお客さんの受けもいいし、お客さんがプラグインを入れたがる。
GUIベースの開発が大変だったの軽減

atottoさん


jenkinsを使うゆうになったきっかけ、EclipseC++プロジェクトを簡単にjenkinsでビルドする方法

こちらは、下記の資料を見ていただくのが早いと思いますので、ご本人が強調されていたことを記述していきたいと思います。

  • Jenkinsの導入は早くに導入しないと、破綻する。

プロジェクト途中から導入するにしても、早いに越したことはない。
スライドの5,6,7 ページあたりに書いていることですね。
そういう状況を作らないことが大切だと、ボクも思います。

  • お気に入りのプラグインの紹介

    1、TOーDO管理
    Task Scanner
    コード中のTODOタグを集計
    発表のなかで、C++の開発はウォータフォールになりやすいので、コードにTODOなんてみたいにいうひとがいる的なことをおっしゃってましたが、そこはうまく使っていきたいとおっしゃってました。

    2、ログ解析
    Warnings Plugin
    gccの警告解析
    自分で定義もできる

    社内では、決められたツールを使っているようです。

  • 感想

atottoさんの愚直に問題に取り組む姿勢が、ひしひしと伝わってきて、言語や環境は違いますが学ぶべき点が多い発表でした。

発表資料

補足資料

スライドの中に出てくるブログ記事

今日のまとめ


おみやげもらいましたXD



随時、情報がアップされたら追記していきます。
最後までお読みいただき、ありがとうございましたm(_ _)m