SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
Hello.
Continuous Integration
WHO?
• 松村 勇輝 @Yuki_312
• Yukiの枝折. http://yuki312.blogspot.jp/
• Android Developer
QUESTION
QUESTION
統合作業…
チーム内のソースコードを
集約, ビルド, テストする.
QUESTION
✓ 最新のソースコードを集約してビルドされる
✓ 最新のソースコードを集約してビルドされる
✓ 全てがクリーンな状態でビルドされる
QUESTION
✓ 最新のソースコードを集約してビルドされる
✓ 全てがクリーンな状態でビルドされる
✓ 成果物は実行可能な状態で作られる
QUESTION
✓ 最新のソースコードを集約してビルドされる
✓ 全てがクリーンな状態でビルドされる
✓ 成果物は実行可能な状態で作られる
✓ テストにパスしたことを確認できる
QUESTION
✓ 最新のソースコードを集約してビルドされる
✓ 全てがクリーンな状態でビルドされる
✓ 成果物は実行可能な状態で作られる
✓ テストにパスしたことを確認できる
✓ 全てのステップが成功し自動実行である
QUESTION
✓ 最新のソースコードを集約してビルドされる
✓ 全てがクリーンな状態でビルドされる
✓ 成果物は実行可能な状態で作られる
✓ テストにパスしたことを確認できる
✓ 全てのステップが成功し自動実行である
✓ 上記が1日に何度も頻繁に行われる
QUESTION
QUESTION
Hello.
Continuous Integration
CONTENTS
• 生産性とインテグレーション
• 継続的インテグレーション
• Get Started
• デモンストレーション
• CI as a Service
PRODUCTIVITY
PRODUCTIVITY
• 生産性 = Output / Input
PRODUCTIVITY
• 生産性 = Output / Input
• 少ない投資で大きな価値を
PRODUCTIVITY
• 生産性 = Output / Input
• 少ない投資で大きな価値を
• 同じ品質をより短い時間で
PRODUCTIVITY
• 生産性 = Output / Input
• 少ない投資で大きな価値を
• 同じ品質をより短い時間で
• 贅肉を削ぎ落とすこと
INTEGRATION
INTEGRATION
• commit
INTEGRATION
• commit
• build
INTEGRATION
• commit
• build
• test
INTEGRATION
• commit... conflict.
• build
• test
INTEGRATION
• commit... conflict.
• build... error.
• test
INTEGRATION
• commit... conflict.
• build... error.
• test... failed.
INTEGRATION
• インテグレーションは面倒な作業
• Milestone/Weekly/Daily Buildが辛い
• 頻繁な統合テストはコストがかさむ
• 統合テストで発見される不具合は厄介
BEST PRACTICE
BEST PRACTICE
“頻繁にインテグレーションする”
BEST PRACTICE
基本的かつ重要な
“完全に自働化されたビルドとテスト”
AUTOMATION
• 頻繁なインテグレーションが実現可能
• よりアトミックなインテグレーション
• インテグレーションに伴う面倒を解消
BAD PRACTICE
BAD PRACTICE
BAD PRACTICE
“ある機能のバグが他に影響しているが,
互いの機能開発者達はその事実に気づかない.
相互作用の中に潜むバグの発見は難しく,
原因特定には長い時間が費やされる. ”
-Martin Fowler-
BAD PRACTICE
インテグレーションの間隔が空くほど,
統合のトータルコストが増し生産性は悪化する.
CI
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
-Martin Fowler-
BEST PRACTICE
頻繁な統合は検証の機会を増やし,
統合に伴う問題を低減する.
NOT CI
NOT CI
• 統合ビルドはする... が, 通らない
NOT CI
• 統合ビルドはする... が, 通らない
• ビルドは成功する... が, テストにパスしない
BUILD SUCCESSFUL
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
✓ 成果物を実行可能な状態で生成した
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
✓ 成果物を実行可能な状態で生成した
✓ テストスイートにパスした
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
✓ 成果物を実行可能な状態で生成した
✓ テストスイートにパスした
✓ 全てのSTEPがエラーもなく自動実行された
PROBLEM
PROBLEM
• Single Source Point
PROBLEM
• Single Source Point
• Workflow
PROBLEM
• Single Source Point
• Workflow
• Build Script
PROBLEM
• Single Source Point
• Workflow
• Build Script
• Testing Framework
• Single Source Point
Git
• Workflow
• Build Script
• Testing Framework
PROBLEM
• Single Source Point
Git
• Workflow
GitHub-Flow, PR Driven
• Build Script
• Testing Framework
PROBLEM
• Single Source Point
Git
• Workflow
GitHub-Flow, PR Driven
• Build Script
Gradle
• Testing Framework
PROBLEM
• Single Source Point
Git
• Workflow
GitHub-Flow, PR Driven
• Build Script
Gradle
• Testing Framework
JUnit, Espresso
PROBLEM
GET STARTED
GET STARTED
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
-Martin Fowler-
GET STARTED???
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
-Martin Fowler-
GET STARTED
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
GET STARTED
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
今回はテストのフェーズをスキップ
GET STARTED
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
↓
自動化された, 再現可能なビルドを,
日に何度も行うこと
GET STARTED
“すべてが自動化された, 再現可能な
ビルド(とテスト)を, 日に何度も行うこと”
↓
自動化された, 再現可能なビルドを,
日に何度も行うこと
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
✓ 成果物を実行可能な状態で生成した
✓ テストスイートにパスした
✓ 全てのSTEPがエラーもなく自動実行された
BUILD SUCCESSFUL
✓ 最新のコードを全てチェックアウトした
✓ 全てがクリーンな状態でビルドした
✓ 成果物を実行可能な状態で生成した
✓ テストスイートにパスした
✓ 全てのSTEPがエラーもなく自動実行された
GET STARTED
GET STARTED
CIaaS
Continuous Integration as a Service
CI AS A SERVICE
• CI自動化支援
• 老舗のCIソフトウェア – Jenkins
• 老舗のCIサービス – Travis CI
• その他CIサービス – Circle CI, Codeship, etc.
• エンジンとなってプロジェクトを加速する
CIRCLE CI
CIRCLE CI
• AWS + LXC のコンテナ運用
• CIサーバ運用は不要
• YAMLによるタスク管理
• SSHによるリモート接続可
• Dockerをサポート
• 安価で軽い
SUPPORT
• Collaboration
GitHub (BitBucket, GitLab is not supported)
• Language
Ruby, Python, Node.js, PHP, Java, Haskell, Scala
• Platform
Android, iOS
DEMONSTRATION
ANTI PATTERN
ANTI PATTERN
• 肥満リポジトリ
コンテナの初期化がボトルネックになる
ANTI PATTERN
• 肥満リポジトリ
コンテナの初期化がボトルネックになる
• 複数のプロダクト
ビルドが別プロダクトのビルドを待たせる
ANTI PATTERN
• 肥満リポジトリ
コンテナの初期化がボトルネックになる
• 複数のプロダクト
ビルドが別プロダクトのビルドを待たせる
• 過度なPush
不必要なPushでビルド待ち行列を発生させる
KEEP FASTER
• CIの速度はプロジェクトの速度
• ビルドの待ち行列が発生しないように
• ビルドの成功条件を厳守する
• 課金重要
PRICE – CIRCLE CI
• Public, Privateに関わらず1 container 無料
• 1 container(parallelism) $50/month
• レポジトリ数 無制限
• ユーザ数 無制限
• ビルド時間 無制限
PRICE – GITHUB
• Organization plans - Bronze
• Publicリポジトリ 無料&無制限
• 10 Privateリポジトリ $25/month
• メンバー数 無制限
CONCLUSION
• インテグレーションは自動化
• 頻繁にインテグレーションする
• 自動化にはCIaaSを使う
• CIaaSを試すにはCircleCIがおすすめ
• GitHubも忘れずに
• 慣れたらテストスイートを追加していく
以上.
ありがとうございました

Contenu connexe

Tendances

Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Masanori Satoh
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意MakotoItoh
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Kenichi Kambara
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineerKazuaki Matsuo
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編kimulla
 
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるiOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるShunsuke Maeda
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例健一 辰濱
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料Hiroko Tamagawa
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションdcubeio
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open APIKohei Saito
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Yuta Matsumura
 
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話Preferred Networks
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックYu Kitazume
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料ikikko
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたOda Shinsuke
 

Tendances (20)

快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
 
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
 
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
 
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
 
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進めるiOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
 
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
 
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーションJenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニックDevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
 
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
 
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみたNet なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
 

Similaire à Hello. Continuous Integration

書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テストryohji ikebe
 
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTipsShou Takenaka
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIWataru MIYAGUNI
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1Hiro Yoshioka
 
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テストryohji ikebe
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagireTakashi Imagire
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセスMakoto Kato
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodAtsuhiro Kubo
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるToshiyuki Hirata
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前にYasui Tsutomu
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニングKiyokazu Kaba
 
初めての単体テスト
初めての単体テスト初めての単体テスト
初めての単体テストBasuke Suzuki
 
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 schoowebcampus
 
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業Osamu Monoe
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 

Similaire à Hello. Continuous Integration (20)

書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
 
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagire
 
恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえるXcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
 
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
初めての単体テスト
初めての単体テスト初めての単体テスト
初めての単体テスト
 
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
 
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 

Hello. Continuous Integration