Jenkins Backlog Pluginリリース!& Jenkinsのリポジトリブラウザについて

ikikkoです。

最近、メールやその他諸々の反応が遅れ遅れになってて申し訳なく思っている今日この頃です。そんな私ですが、私の事は嫌いでもBacklogのことは嫌いにならないでください (・∀・)

ということで、今日はJenkins Backlog Pluginの新機能「BacklogのGitリポジトリブラウザ連携機能」リリースのお知らせと、「リポジトリブラウザ」についての紹介をしたいと思います。

リポジトリブラウザはJenkinsの基本的な機能の一つでそんなに難しい機能でもないのですが、ちょっとぐぐっても出てこないし(敢えて説明するほどでもない?)意外と見落としがちな機能で、ここで改めて説明します。


概要

通常、ビルドの第一ステップとしてソースコードをチェックアウトする処理が入りますが、Jenkinsではチェックアウトしたコードを任意の外部ブラウザで表示できる「リポジトリブラウザ」機能が付いています。例えば、Githubで管理してるコードなら、Jenkinsでビルドした際のコードの変更点を、Githubのソースコードブラウザでダイレクトに表示できるということです。

ということで、GithubではなくBacklog(+Git)で管理している方のために、Backlog上のリポジトリブラウザで表示できる機能を追加してリリースしました。なお、Backlog+Subversionにも既に対応してますので、Subversion管理の方も同様に使用できます。

設定

以降、Backlogを例に説明しますが、設定方法はGithubなどでも同様です。なので、各自がお使いのものに読み替えてください。

まず、Jenkinsの各プロジェクトの設定で、「Backlog URL」にBacklogプロジェクトのURLを設定しておきます。リポジトリブラウザに限っていえば、「ユーザID/パスワード」は使用しません。ですが、その他のBacklog連携機能を使用する場合には必要なので、適宜入力しておいてください。
https://cacoo.com/diagrams/c8E1JSYoLB2iZtKU-3ECB6.png

で、ソースコード管理システムを入力する箇所に移ります。「Repositories」など必要な設定をした後、おもむろに「リポジトリ・ブラウザ」でBacklogと、合わせて「リポジトリ名」を設定します*1
https://cacoo.com/diagrams/c8E1JSYoLB2iZtKU-ED392.png

リポジトリブラウザでの表示

設定が終わったら、実際にリポジトリブラウザを見てみましょう。

画面遷移的には以下のような感じです。

  1. JenkinsのプロジェクトTOPページから、「変更」をクリック
  2. 変更一覧ページから、各コミットの「Backlog」をクリック(リポジトリブラウザに"Github"を選択していた場合は、ここのリンクが"Github"と表示されます)
  3. もしくは、変更詳細ページを表示した後、ファイルやdiffのリンクからBacklogのリポジトリブラウザに遷移

https://cacoo.com/diagrams/c8E1JSYoLB2iZtKU-7EB56.png

ちょっと画像が小さくて分かりづらいですかね。まあ、「JenkinsからBacklog(や指定したリポジトリブラウザ)上で、ソースコードの変更箇所を表示することが出来る」ということさえ知っておけば、あとは適当にリンククリックしていけば分かってくるかと思います。出来るということを知らないと、そもそも辿りつけないですからね。


以上。

何だかんだで、Jenkins Backlog Pluginも地道な機能拡張を重ねてVer 1.8までやってきました。以降のネタはあまりないのですが、もし何らかの要望がある方がいたら、コメントなり@ikikkoなりに連絡もらえると出来る範囲で対応したいと思いますので。

*1:SubversionではBacklogプロジェクトに1つのSubversionリポジトリという制限だったので、プロジェクトが分かると一意に指定できました。ただし、Gitでは1つのBacklogプロジェクトに複数のGitリポジトリを作成できるので、どのリポジトリを使うかを指定する必要があります。

このGW中にやったこと

何かブログ書いてないなー。そして今年のGWも安定のヒキコモリ。まともに外に出たのは、近くのファミレスに行ったぐらいだけ。GW前から体調悪いのが、まだ完調していないし。色々すいません・・・>全方位

とりあえず、このGWにやったことをざっと書いておきます。今回は、新しく何か作ったりする系は押さえて、どちらかというと基礎力を高めることに注力しました。4月に仕事の環境変わったので、それに追随していくための基礎固めです。


AWS

周りがプロばかりなので名前だけは十分過ぎるほど聞いてたのですが、何となく後回しになってたやーつ。さすがに避けれそうになくなってきたので、今回やってみました。

もう1年近く前にWeb+DBに@と@が書いた記事を元に、とりあえずはチュートリアルから。EC2のインスタンス立ち上げて止めて、elastic IPとさらに独自ドメイン割り当てて、S3に保存したりとか。

WEB+DB PRESS Vol.62

WEB+DB PRESS Vol.62

  • 作者: cho45(さとう),染田貴志,浜本階生,おにたま,中島聡,角田直行,はまちや2,山本竜三,尾藤正人,石橋利真,ミック,みやけん,個々一番,広木大地,原悠,WEB+DB PRESS編集部
  • 出版社/メーカー: 技術評論社
  • 発売日: 2011/04/23
  • メディア: 大型本
  • 購入: 14人 クリック: 1,332回
  • この商品を含むブログ (23件) を見る

その後は、Jenkins EC2 Pluginを試してみました。ただ、Amazon LinuxのAMIだといまいちうまくいかない感じ。EC2 Pluginがrootでログインすること前提で作られているっぽく、"remote user=ec2-user"や"Root command prefix=sudo"を設定してもだめぽ。sshd_configのPermitRootLoginをyesにするとうまくいくようになりましたが、なんだかなーってところです。

とりあえず今すぐ使う予定もないので、これ以上は置きで。何かあったらもうちょい深いところまでみようと思います。

zsh+tmux

デフォルトのbash+Terminal.appでやってきたのですが、これまたそろそろ限界がきたので、この機会にCLI環境を整備しようと思いました。周りはscreen派?みたいですが、今からやるならtmuxの方がよいという風の噂を受けて、tmuxで。

とりあえず、インストールしてざっと触れました。後は、@が言ってた「コマンド一発で複数のホストにSSH接続する」というシェルスクリプトがよさそうだったので、tmuxのコマンドと組み合わせて作ってみました。引数で指定したホスト(複数可)ごとにウィンドウを作成してssh接続するスクリプトです。

ちょっとぐぐったけど、意外とありそうでなかったんですよね。なので、もっと簡単に!tmuxで複数のサーバにSSH接続して同じコマンドを一気に送る | 三度の飯とエレクトロンを参考に作ってみました。他にもっといいやり方とか、そもそも別のツールがあるのかな?あったら教えてください。

rsync

実は触ったことなかったんで。↑で作成したEC2上のインスタンスを対象に、初回バックアップ -> 2回目バックアップ -> 復元ぐらいを。あまり細かいとこは触れずに、さらりとです。

Jenkins業

Jenkinsユーザカンファレンスのタイムテーブル作成中です。来週か再来週ぐらいには公開したいと思っているので、もうしばらくお待ちください。

ちなみに、Jenkins ユーザ・カンファレンス 2012 東京 - connpassも初日こそ300人/日という驚異的な記録をたたき出したのですが、最近あまり伸びてませんね。ただいま600人弱。タイムテーブル作成中にキャパを簡単に算出してみたら、計算上1300人弱は入る見込みです。倍くらいまではいけるので、みなさんこぞってご参加を。


あと、もうちょっとやりたいことがあったのですが、間に合いませんでした。あと数時間GWが残っているので、いけるところまで頑張りたいと思います。

俺はようやくのぼりはじめたばかりだからな
この果てしなく長いGWをよ・・・


未完

http://www1.odn.ne.jp/cjt24200/yamada/text/otokozaka/8.gif

社内ブログ書きました

一応会社ブログなので出落ちネタとかも自重したし、実名で書いたので僕が書いたかどうか分からない方もいるかもしれないですね。

http://bohyou.vis.ne.jp/hokuto/img/hokuto4b12.gif

背景なんですが、この前のJenkins勉強会レポートSphinxを使って書いてみました。で、その際毎回HTMLファイルをビルドしてBacklogにあげるのが面倒だったので、Jenkinsの後処理でファイル共有にあげれるようにプラグイン拡張しようと思ったのが、そもそもの経緯です。

(結局プラグインの拡張が間に合わなかったので、手動でファイル共有にあげていたのですが・・・)

なお、あっちにも書いていますが、何か要望や不具合報告があるならはてだでもTwitterでもFacebookでも何でもいいのでご連絡ください。Twitterは「Jenkins Backlog」で検索かけた結果をRSSリーダーにかけており、@ついてなくても大抵反応できます キリッ

Jenkins勉強会のスタッフ視点からの反省

この前のJenkins勉強会のレポートも無事掲載されたということで、反省すべき点を忘れないうちにつづっておきます。


分割募集の意図を伝えきれていなかった

一番がこれ。「1時間で40人の1次募集枠が埋まってしまう」レベルだったので、告知のタイミングでたまたまチェックできなかった人にもできるだけチャンスを与えようとして、1,2,3次と分割募集したのですが、その意図を明確に伝えきれていませんでした。なので、どこに応募すればいいか戸惑った方もといたかと思います。

この辺、キャンセル待ちとかは使う告知サイトにもよると思うので、ある程度吟味してから選択していきたいです。

色々見積もりが甘かった

  • 時間
  • お金
  • 当日タスク

とか。

当日タスクは先にある程度決めておかないと、土壇場では頼みにくい。みんな発表は聞きたいはずなので。

あと、自分が聞けないのは諦めた方がいいかなと思いました。どうせ、レポート書くときに一からじっくりUst聞き直すから、諦めて裏方に徹しまくったほうが無難かなと。

ビアバッシュはスタッフ側の負担がぼちぼち大きい

ビアバッシュするとなると、当然参加者全員から料金徴収する必要が出てきて、そしたらドタキャンの問題とか受付の負担が増えるとかもあるので。参加料無料だと、ドタキャンについてはそこまで考慮しなくていいんですけどね。

ただ、参加者にとっては、ビアバッシュは結構ありがたい仕組みですよね。安上がりで懇親会的なノリで皆と話せるし、時間もそんなに遅くならない。

なので、毎回は無理ですが年1ぐらいではやれたらなーと思いました。

デジカメ忘れたので、レポートに掲載する写真が少なくなった

タイトルで終わり。


ちょっと今回アップアップになってしまって、心の余裕が無くなってしまったのが申し訳ないです。スタッフ側に余裕がないと、参加者も楽しみにくいだろうし。

今度からは心に余裕を持つことを心がけて、発表者/会場提供者/参加者みなさんに感謝の気持ちを忘れないようにしたいと思います、まる。

http://3.bp.blogspot.com/_LM8HL3MnkQE/Szp6xofYNnI/AAAAAAAAC48/wyOyxnT_XDk/s320/%E6%84%9F%E8%AC%9D%E3%81%A3%EF%BC%81%E5%9C%A7%E5%80%92%E7%9A%84%E6%84%9F%E8%AC%9D.jpg

Jenkins本 & WEB+DB Press Vol.67 を献本いただきました!

レビューをさせてもらった経緯もあって、ついにねんがんのJenkins実践入門を献本してもらったぞ - @ikikko のはてなダイアリーに引き続いて2冊の献本をいただきました。オライリー様・技評様、ありがとうございます!書評遅くなってすいません...orz


Jenkins

一部では蛙本という愛称で知られている、Jenkins本です。

Jenkins

Jenkins

原著がPDFで無償提供されているので読んだことはあるのですが、翻訳版を読み返しても案の定細かいことはまったく覚えていませんでした。英語が全然苦なく読めるという一部の人以外にとっては、やはり日本語で読めるというのはとっかかりとして楽だと思います*1

はじめの一歩でJavaの次にいきなりGitをインストールしてくださいとか、Mavenベースで説明されてるとかで、Jenkinsを最初に使う方が読むのはちょっとハードルが高いでしょう。ただ、「Jenkins実践入門」や「Jenkinsで始めるビルド職人入門」がAntベースだったので、Mavenをメインで使う方は参考になるかと思います。実は僕もあまりMavenベースでJenkinsを運用していないので、勉強になりました。

本書の内容をいきなり全部実践するのは難しいと思うので、一度目を通しておいてこんなときにはこんな手法が使えるんだよ的に使うのがいいのではないでしょうか。

また、日本語版だけの特典として、付録にPlay! Frameworkを題材にプラグイン開発の説明が付いています。ただ、僕のようなPlay弱者にとってはそのまま試すことができないので、ツライこともあるかもしれません。そんなときは、下記資料が参考になるかと思います。この辺は特定のモジュールに依存していないので、Jenkinsプラグイン開発に絞って学ぶことができます。(kiy0takaさんのは一部Twitterに依存してるところがあるけど)

WEB+DB Press Vol.67

今月号のWEB+DBの第1特集に、あの川口さんがJenkins特集を書いています。デブサミの発表でも語られていたそうですが、川口さん自身の口からJenkinsやCIへの思いを知れるというのは、それらを理解する上で重要なことだと思います。

WEB+DB PRESS Vol.67

WEB+DB PRESS Vol.67

特集の中身は、第1、2章でJenkinsについて簡単な紹介があった後に、後半ではJenkinsを使いこなす技が惜しげもなく紹介されています。プラグインの使い方の単純な説明や、単に手動ビルドを自動化への置き換えというだけでなく、Jenkinsを使ったからこそできることが色々と書かれています。

僕はどちらかというと、Jenkinsがなくても開発が進められるようにする方向に倒すことが多いんですよね。「基本的にビルドスクリプトで実装して、Jenkinsではそれを叩くようにする。普段はJenkins上から実行されるけど、いざとなればビルドスクリプトを直接実行することもできる」という方針。ただ、Jenkinsのプラグイン使えば楽にできることも、ビルドスクリプトで実装するのは面倒なことも多いんですよね。デプロイ関係とかレポート周りとか。

そこで、Jenkinsがあることを前提にできる環境ならば、Jenkinsにべったりで組んだ方が楽になる機会も多いかなと思いました。この辺はケースバイケースで考えていきたいです。


なお、これらの書籍はこの前のJenkins勉強会で、余興の一環として参加者にプレゼントさせていただきました。オライリー様・技評様においては、プレゼント用にも提供していただきありがとうございました。

*1:Jenkinsは進化も早いので、なるだけ本家英語版のドキュメントもしくはソースコードを読むにこしたことはないのですが

大阪のJenkins勉強会で発表してきました

東京だと僕は話聞くより裏方に回る方が多いので、これに遠征して話してきました。主催の@さん・@さん、非常に広い会場をお貸しいただいたTIS株式会社様、平日の夜にも関わらず参加してくださったみなさん、ありがとうございます。


発表内容的には、「Jenkinsのプロジェクトがたくさんあるときの管理コストを減らす」という視点からでした。これはこれで面白いとは思うのですが、このテーマとは少しずれるので話さなかった話もいつかまとめて発表なり明文化して整理しておきたいです。

発表内容とはちょっとずれますが、「発表のテンポがよくて聴きやすい」という声があったのが嬉しかったです。致命的に滑舌が悪いのは自覚しているので、少しでもテンポよくするためにちょいちょい工夫してたのが多少なりとも効果あったのかなと。スライド4,5枚に1枚は画像のスライドを挟むようにしている*1のとか、ちょっとヒートアップして早口になってきたなと思ったら水を飲んでリセットするというのを意識して実践したのとか。

他の人の発表は、GerritとかEC2とかXFDとか、いずれ取り入れてみたいものばかりのデモでした。デモでやられると、やっぱいいなーって思いますよね。

懇親会では、久しぶりにほぼアウェイなところで、新鮮に話せました。発表時に伝えきれなかったことなどもあって、ちょい自分の話が多くなった感があるので、もうちょっとみんなの話を聞けるようにすればよかったなとは反省してます。あとは、kiy0taka さんとJenkinsの内部的な話ができたのも面白かったですね。Jenkins Tutorial Pluginをお待ちしています。


まとめると、テニスの王子様面白いですよねってことでいいですかね。早く天衣無縫の極みを開拓したいです。

*1:全部画像のスライドにしてもいいけど、画像探すのが若干面倒なのと、箇条書きというか文字として適度に説明が記載してあった方がスライド見ただけで分かりやすいっていうのがありまして。

Shibuya.tracでJenkinsについて発表してきましたよ

先週金曜日に、Shibuya.trac 第13回勉強会でお話してきました。きれいな会場を提供してくださったパソナ様、発表を聞いてくださった参加者の皆様、ありがとうございます。


発表のはじめに

  1. Jenkinsを知らない/使ったことがない人
  2. Jenkinsをちょっと使ったことがある人
  3. Jenkinsを実プロジェクトで使っている人

というようなアンケートをとったのですが、今回は2番目の層がターゲットでした。「色々Jenkinsの情報はあるけど、この辺を見ていけば効率よく情報収集できるよ」っていうのが、テーマです。Jenkinsをがっつり使い倒している人にとっては、ちょっと物足りなかったかもしれませんね。

Shibuya.tracなのにTracやBTSと絡めた話ができなかったのは、ちょっと残念でした。まあ、ネタを考える時間もなかったので、仕方ないということで。「何か小ネタを挟め」と上司からパワハラを受けたので、泣く泣くデスノートを挟んだのはナイショの話です・・・

次は年明けて2月に、大阪遠征してJenkins勉強会で発表させていただきます。今回はJenkinsだけではなかったので少し軽めのテーマだったのですが、大阪ではJenkins勉強会ということもあって運用事例も含めてちょっと踏み込んだ内容を話せればと思ってます。大阪近辺の方は、ぜひよろしくお願いします。