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
280
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hudson for Perl Project
Kentaro Kuribayashi
November 20, 2010
More Decks by Kentaro Kuribayashi
See All by Kentaro Kuribayashi
あとはAIに任せて人間は自由に生きる
kentaro
5
2.2k
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
3
320
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
2.5k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
780
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
350
「始め方」の始め方 / How to Start Starting Things
kentaro
5
1k
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.7k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
770
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
8
6.9k
Other Decks in Technology
See All in Technology
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8.1k
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
230
20260702_生成AIはどこまで成長するのか_チャットだけじゃない世界
doradora09
PRO
0
110
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
220
NDIAS CTF 2026 問題解説会資料
bata_24
0
180
Foxgloveについて 実際にExtensionを開発して公開するまでの話 / About Foxglove: The Story of Developing and Releasing an Extension
ry0_ka
0
190
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
170
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
400
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
210
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
450
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
600
Building AI with AI
inesmontani
PRO
1
1.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Facilitating Awesome Meetings
lara
57
7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Everyday Curiosity
cassininazir
0
250
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Being A Developer After 40
akosma
91
590k
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