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
250
Hudson for Perl Project
Kentaro Kuribayashi
November 20, 2010
Tweet
Share
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
1
130
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
400
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
270
「始め方」の始め方 / How to Start Starting Things
kentaro
5
880
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.3k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
540
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
7
5.6k
組織の生産性を高める意思決定の構造と方法 / How to do make decision rapidly and effectively
kentaro
41
23k
キャリアを時間・空間軸で考える / Thinking about your career from both time and space viewpoints
kentaro
15
16k
Other Decks in Technology
See All in Technology
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.7k
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
310
Pwned Labsのすゝめ
ken5scal
2
570
IAMのマニアックな話2025
nrinetcom
PRO
6
1.4k
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
360
“常に進化する”開発現場へ! SHIFTが語るアジャイルQAの未来/20250306 Yuma Murase
shift_evolve
0
100
RaspberryPi CM4(CM5も)面白いぞ!
nonnoise
0
150
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.6k
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
240
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
360
リクルートのエンジニア組織を下支えする 新卒の育成の仕組み
recruitengineers
PRO
2
180
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Statistics for Hackers
jakevdp
797
220k
Faster Mobile Websites
deanohume
306
31k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Product Roadmaps are Hard
iamctodd
PRO
51
11k
The Language of Interfaces
destraynor
156
24k
GraphQLとの向き合い方2022年版
quramy
44
14k
A better future with KSS
kneath
238
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Rails Girls Zürich Keynote
gr2m
94
13k
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