Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hudson for Perl Project
Search
Kentaro Kuribayashi
November 20, 2010
Technology
1
260
Hudson for Perl Project
Kentaro Kuribayashi
November 20, 2010
Tweet
Share
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
あとはAIに任せて人間は自由に生きる
kentaro
3
1.3k
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
3
190
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
1.9k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
550
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
310
「始め方」の始め方 / How to Start Starting Things
kentaro
5
950
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.6k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
660
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
7
6.2k
Other Decks in Technology
See All in Technology
KotlinConf 2025_イベントレポート
sony
1
130
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
170
「Linux」という言葉が指すもの
sat
PRO
4
130
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
190
RSCの時代にReactとフレームワークの境界を探る
uhyo
10
3.4k
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
11k
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
390
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
970
AWSで始める実践Dagster入門
kitagawaz
1
620
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
150
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
920
How STYLIGHT went responsive
nonsquared
100
5.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Gamification - CAS2011
davidbonilla
81
5.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Speed Design
sergeychernyshev
32
1.1k
Thoughts on Productivity
jonyablonski
70
4.8k
Optimizing for Happiness
mojombo
379
70k
Building an army of robots
kneath
306
46k
Transcript
HudsonでPerlプロジェクトの継 続テスト (株)はてな 栗林健太郎 Kansai.pm #13 (2010/11/20)
自己紹介 •栗林健太郎 •id:antipop •@kentaro •Perler / Emacser
自己紹介 •(株)はてな勤務 •アプリケーションエンジニア ◦はてなダイアリー ◦新サービス ◦etc. • 文化系プログラマ担当
自己紹介 •ポリコムをPerlから動かしたり ◦ 「PolycomをPerlから操作する」 •Acme::MorningMusumeの久々の更新 に向けてアップを開始したり ◦「モーニング娘。9期メンバーオーディ ション」
自己紹介 •天龍寺にいます
アジェンダ •継続テスト環境の必要性 •Hudsonを使おう ◦Hudsonの導入 ◦テスト実行方法 ◦Tips •まとめ
テストできてる? •一点の曇りもなく素晴しいテストを書く ぞ!!1 •開発が進むにつれて: ◦仕様追加などで、テストが通らない、 あるいはそもそもテストがない機能が 増えてくる ◦破滅……
なぜそうなるか? •そりゃ、テストを書く、テストを通してから コミットするってのは前提だけど…… •個人のやる気だけでやると破綻 •自動的に、誰からでも見えるようにテス トが実行される必要性
テストの自動化 •個人は普段のサイクルで開発 ◦開発→テスト→コミット •あとは自動的にテストが勝手に行われ る •さらに、ツールが表示する結果がビジュ アルで美しいと、それを乱したくないとい う気持ちが働く
テストツールの要件 •Perlプロジェクトのテストに使える •導入が簡単 •テスト実行のタイミングを柔軟に設定で きる •結果の通知方法を柔軟に設定できる •テスト結果の表示がビジュアルできれい
Hudson
Hudson •Java製のCI(Continuous Integration)環 境 •インストール、設定が簡単 •柔軟な設定が可能 •豊富な拡張機能
Hudson •実行タイミングいろいろ ◦cronぽいスケジューラ ◦SCMをポーリング ◦コミットフックで通知
Perlから使うには? •シェルコマンドを実行できる ◦proveすればいい •JUnit形式で結果を吐いておけば、テス ト結果を集積できる •具体的な設定は後述
Perl + Hudsonを試してみる •SCMはgit •普通のPerlプロジェクト ◦proveでテスト実行
Hudsonインストール・起動 •$ wget http://hudson-ci. org/latest/hudson.war •$ java -jar hudson.war •http://localhost:8080/にアクセス
Gitプラグイン導入 •「Hudsonの管理」 → 「プラグインの管 理」にアクセス •「利用可能」タブの中のGitプラグインに チェックを入れて、インストール
プロジェクトの追加
プロジェクトの概要
Gitリポジトリの設定
テストのスケジューリング
テスト実行のしかた
テスト結果の集計
テストの実行 •とりあえず実行するには「ビルド実行」を クリック • 定期実行するには、前述の「設定」→ 「ビルド・トリガ」 •API経由でビルドをキックすることもでき ます
コミットフック •Gitリポジトリへのpushをトリガにテストを 実行 ◦SCMのポーリングよりリアルタイム •特定のURLにリクエストを送るだけ ◦ http://${hudson}/job/${project}/build
REST API •新規プロジェクトの作成、既存ジョブか らのコピー •登録されているジョブの情報を取得 •プロジェクトに関するビルド一覧 •それぞれのビルド詳細 •ビルドの実行 •Hudsonサーバのリスタート
hudson-cli •Hudsonサーバ/プロジェクト/ジョブに関 する様々な操作 •Groovyスクリプト/Groovyシェルで Hudsonサーバの内部状態を操作
テスト結果を受け取る •メール •IRC
テスト結果を受け取る •Hudson Tracker ◦http://hudsontracker.sourceforge. net/
テスト結果の集計
安全なテスト実行ために •Test::mysqld ◦テスト実行時にDB/table作成 ◦テストデータのロード •DBIx::RewriteDSN ◦確実に、テスト用DBにアクセスするよ うに
Hudsonを実運用する •各OS用のパッケージが用意されていま す。 •CenoOSでのやり方についてはブログ に書いた ◦http://d.hatena.ne. jp/antipop/20101119/1290180195
まとめ •Hudsonで継続テスト環境を作ろう ◦誰からでもわかる可視化重要 ◦導入はとても簡単 •テスト結果を確実に受け取れるようにし よう •安全なテスト実行ができるようにしよう
ご静聴ありがとうございました。 質問がありましたらお気軽に!!1