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
社会人力と研究力ー博士号をキャリアの武器にするー
kentaro
2
140
IoTシステム開発の複雑さを低減するための統合的アーキテクチャ
kentaro
2
1.6k
Bidirectional Quadratic Voting Leveraging Issue-Based Matching
kentaro
2
490
大高生へのメッセージ(令和6年度「大高未来塾」) / Messages to Current Students
kentaro
0
290
「始め方」の始め方 / How to Start Starting Things
kentaro
5
920
Dynamic IoT Applications and Isomorphic IoT Systems Using WebAssembly
kentaro
1
1.5k
わたしがこのところハマっている「ライセンスフリー無線」のご紹介 / An Invitation to License-Free Radio
kentaro
1
620
先行きの見えなさを楽しさに変える ーVUCA時代のキャリア論と絶対他力主義ー / How to develop your career in the VUCA era
kentaro
7
6k
組織の生産性を高める意思決定の構造と方法 / How to do make decision rapidly and effectively
kentaro
41
23k
Other Decks in Technology
See All in Technology
AIの最新技術&テーマをつまんで紹介&フリートークするシリーズ #1 量子機械学習の入門
tkhresk
0
130
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
180
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
140
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
1k
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
170
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
5.3k
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
13
4.8k
GitHub Copilot の概要
tomokusaba
1
130
データプラットフォーム技術におけるメダリオンアーキテクチャという考え方/DataPlatformWithMedallionArchitecture
smdmts
5
620
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
230
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
300
Featured
See All Featured
BBQ
matthewcrist
89
9.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Facilitating Awesome Meetings
lara
54
6.4k
Rebuilding a faster, lazier Slack
samanthasiow
81
9.1k
A designer walks into a library…
pauljervisheath
206
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Our Code Smells
bkeepers
PRO
337
57k
Done Done
chrislema
184
16k
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