Soumettre la recherche
Mettre en ligne
Hello. Continuous Integration
•
0 j'aime
•
1,118 vues
Yuki Matsumura
Suivre
developer meetup 001 発表資料. CI導入に向けての一歩目.
Lire moins
Lire la suite
Environnement
Signaler
Partager
Signaler
Partager
1 sur 79
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
UnitTest
UnitTest
Yuki Matsumura
Dependency injection
Dependency injection
Yuki Matsumura
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
Kouhei Sutou
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
ichigotake .
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
Hiroko Tamagawa
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Ciじゃない方のJenkins
Ciじゃない方のJenkins
Katsuhiro Miura
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
Recommandé
UnitTest
UnitTest
Yuki Matsumura
Dependency injection
Dependency injection
Yuki Matsumura
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
Kouhei Sutou
[Android] モジュール管理で ビルド高速化!
[Android] モジュール管理で ビルド高速化!
ichigotake .
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
Hiroko Tamagawa
Javaユーザに贈るJenkins 25のTips
Javaユーザに贈るJenkins 25のTips
Masanori Satoh
Ciじゃない方のJenkins
Ciじゃない方のJenkins
Katsuhiro Miura
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
Yuki Iwanari
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
Masanori Satoh
グループ制作注意
グループ制作注意
MakotoItoh
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
Kazuaki Matsuo
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
dcubeio
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
Yuta Matsumura
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
Yu Kitazume
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
ikikko
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
Oda Shinsuke
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Shou Takenaka
Contenu connexe
Tendances
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
Masanori Satoh
グループ制作注意
グループ制作注意
MakotoItoh
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
Kazuaki Matsuo
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
Hiroko Tamagawa
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
dcubeio
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Kohei Saito
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
Yuta Matsumura
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Preferred Networks
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
Yu Kitazume
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
ikikko
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
Oda Shinsuke
Tendances
(20)
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Jenkinsで始める継続的デリバリーと実践の道程
Jenkinsで始める継続的デリバリーと実践の道程
グループ制作注意
グループ制作注意
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
ドリコムJenkins勉強会資料
ドリコムJenkins勉強会資料
20151021 cookpad talk_test_engineer
20151021 cookpad talk_test_engineer
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
iOSにおけるコードレビューを一歩先へ進める
iOSにおけるコードレビューを一歩先へ進める
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
20121019 jenkins勉強会lt資料
20121019 jenkins勉強会lt資料
Jenkinsを使った初めての継続的インテグレーション
Jenkinsを使った初めての継続的インテグレーション
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
継続的インテグレーションとテストの話
継続的インテグレーションとテストの話
Jenkins 再入門
Jenkins 再入門
DevOpsを実現する為のChef活用テクニック
DevOpsを実現する為のChef活用テクニック
Jenkinsユーザカンファレンス2015 前座資料
Jenkinsユーザカンファレンス2015 前座資料
Net なプロジェクトでも jenkins を使ってみた
Net なプロジェクトでも jenkins を使ってみた
Similaire à Hello. Continuous Integration
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Shou Takenaka
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
Wataru MIYAGUNI
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
Hiro Yoshioka
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
ryohji ikebe
CIBC workshop by imagire
CIBC workshop by imagire
Takashi Imagire
恋するJenkins
恋するJenkins
Hiroshi Nakao
Firefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Rakuten Group, Inc.
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
Kiyokazu Kaba
初めての単体テスト
初めての単体テスト
Basuke Suzuki
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
schoowebcampus
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
Osamu Monoe
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Similaire à Hello. Continuous Integration
(20)
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
書こう! 使おう! 単体テスト
書こう! 使おう! 単体テスト
CIBC workshop by imagire
CIBC workshop by imagire
恋するJenkins
恋するJenkins
Firefoxの開発プロセス
Firefoxの開発プロセス
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
TDDはじめる前に
TDDはじめる前に
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
初めての単体テスト
初めての単体テスト
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Hello. Continuous Integration
1.
Hello. Continuous Integration
2.
WHO? • 松村 勇輝
@Yuki_312 • Yukiの枝折. http://yuki312.blogspot.jp/ • Android Developer
3.
QUESTION
4.
QUESTION 統合作業… チーム内のソースコードを 集約, ビルド, テストする.
5.
QUESTION ✓ 最新のソースコードを集約してビルドされる
6.
✓ 最新のソースコードを集約してビルドされる ✓ 全てがクリーンな状態でビルドされる QUESTION
7.
✓ 最新のソースコードを集約してビルドされる ✓ 全てがクリーンな状態でビルドされる ✓
成果物は実行可能な状態で作られる QUESTION
8.
✓ 最新のソースコードを集約してビルドされる ✓ 全てがクリーンな状態でビルドされる ✓
成果物は実行可能な状態で作られる ✓ テストにパスしたことを確認できる QUESTION
9.
✓ 最新のソースコードを集約してビルドされる ✓ 全てがクリーンな状態でビルドされる ✓
成果物は実行可能な状態で作られる ✓ テストにパスしたことを確認できる ✓ 全てのステップが成功し自動実行である QUESTION
10.
✓ 最新のソースコードを集約してビルドされる ✓ 全てがクリーンな状態でビルドされる ✓
成果物は実行可能な状態で作られる ✓ テストにパスしたことを確認できる ✓ 全てのステップが成功し自動実行である ✓ 上記が1日に何度も頻繁に行われる QUESTION
11.
QUESTION
12.
Hello. Continuous Integration
13.
CONTENTS • 生産性とインテグレーション • 継続的インテグレーション •
Get Started • デモンストレーション • CI as a Service
14.
PRODUCTIVITY
15.
PRODUCTIVITY • 生産性 =
Output / Input
16.
PRODUCTIVITY • 生産性 =
Output / Input • 少ない投資で大きな価値を
17.
PRODUCTIVITY • 生産性 =
Output / Input • 少ない投資で大きな価値を • 同じ品質をより短い時間で
18.
PRODUCTIVITY • 生産性 =
Output / Input • 少ない投資で大きな価値を • 同じ品質をより短い時間で • 贅肉を削ぎ落とすこと
19.
INTEGRATION
20.
INTEGRATION • commit
21.
INTEGRATION • commit • build
22.
INTEGRATION • commit • build •
test
23.
INTEGRATION • commit... conflict. •
build • test
24.
INTEGRATION • commit... conflict. •
build... error. • test
25.
INTEGRATION • commit... conflict. •
build... error. • test... failed.
26.
INTEGRATION • インテグレーションは面倒な作業 • Milestone/Weekly/Daily
Buildが辛い • 頻繁な統合テストはコストがかさむ • 統合テストで発見される不具合は厄介
27.
BEST PRACTICE
28.
BEST PRACTICE “頻繁にインテグレーションする”
29.
BEST PRACTICE 基本的かつ重要な “完全に自働化されたビルドとテスト”
30.
AUTOMATION • 頻繁なインテグレーションが実現可能 • よりアトミックなインテグレーション •
インテグレーションに伴う面倒を解消
31.
BAD PRACTICE
32.
BAD PRACTICE
33.
BAD PRACTICE “ある機能のバグが他に影響しているが, 互いの機能開発者達はその事実に気づかない. 相互作用の中に潜むバグの発見は難しく, 原因特定には長い時間が費やされる. ” -Martin
Fowler-
34.
BAD PRACTICE インテグレーションの間隔が空くほど, 統合のトータルコストが増し生産性は悪化する.
35.
CI “すべてが自動化された, 再現可能な ビルド(とテスト)を, 日に何度も行うこと” -Martin
Fowler-
36.
BEST PRACTICE 頻繁な統合は検証の機会を増やし, 統合に伴う問題を低減する.
37.
NOT CI
38.
NOT CI • 統合ビルドはする...
が, 通らない
39.
NOT CI • 統合ビルドはする...
が, 通らない • ビルドは成功する... が, テストにパスしない
40.
BUILD SUCCESSFUL
41.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした
42.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした
43.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした ✓ 成果物を実行可能な状態で生成した
44.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした ✓ 成果物を実行可能な状態で生成した ✓ テストスイートにパスした
45.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした ✓ 成果物を実行可能な状態で生成した ✓ テストスイートにパスした ✓ 全てのSTEPがエラーもなく自動実行された
46.
PROBLEM
47.
PROBLEM • Single Source
Point
48.
PROBLEM • Single Source
Point • Workflow
49.
PROBLEM • Single Source
Point • Workflow • Build Script
50.
PROBLEM • Single Source
Point • Workflow • Build Script • Testing Framework
51.
• Single Source
Point Git • Workflow • Build Script • Testing Framework PROBLEM
52.
• Single Source
Point Git • Workflow GitHub-Flow, PR Driven • Build Script • Testing Framework PROBLEM
53.
• Single Source
Point Git • Workflow GitHub-Flow, PR Driven • Build Script Gradle • Testing Framework PROBLEM
54.
• Single Source
Point Git • Workflow GitHub-Flow, PR Driven • Build Script Gradle • Testing Framework JUnit, Espresso PROBLEM
55.
GET STARTED
56.
GET STARTED “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと” -Martin Fowler-
57.
GET STARTED??? “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと” -Martin Fowler-
58.
GET STARTED “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと”
59.
GET STARTED “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと” 今回はテストのフェーズをスキップ
60.
GET STARTED “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと” ↓ 自動化された, 再現可能なビルドを, 日に何度も行うこと
61.
GET STARTED “すべてが自動化された, 再現可能な ビルド(とテスト)を,
日に何度も行うこと” ↓ 自動化された, 再現可能なビルドを, 日に何度も行うこと
62.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした ✓ 成果物を実行可能な状態で生成した ✓ テストスイートにパスした ✓ 全てのSTEPがエラーもなく自動実行された
63.
BUILD SUCCESSFUL ✓ 最新のコードを全てチェックアウトした ✓
全てがクリーンな状態でビルドした ✓ 成果物を実行可能な状態で生成した ✓ テストスイートにパスした ✓ 全てのSTEPがエラーもなく自動実行された
64.
GET STARTED
65.
GET STARTED CIaaS Continuous Integration
as a Service
66.
CI AS A
SERVICE • CI自動化支援 • 老舗のCIソフトウェア – Jenkins • 老舗のCIサービス – Travis CI • その他CIサービス – Circle CI, Codeship, etc. • エンジンとなってプロジェクトを加速する
67.
CIRCLE CI
68.
CIRCLE CI • AWS
+ LXC のコンテナ運用 • CIサーバ運用は不要 • YAMLによるタスク管理 • SSHによるリモート接続可 • Dockerをサポート • 安価で軽い
69.
SUPPORT • Collaboration GitHub (BitBucket,
GitLab is not supported) • Language Ruby, Python, Node.js, PHP, Java, Haskell, Scala • Platform Android, iOS
70.
DEMONSTRATION
71.
ANTI PATTERN
72.
ANTI PATTERN • 肥満リポジトリ コンテナの初期化がボトルネックになる
73.
ANTI PATTERN • 肥満リポジトリ コンテナの初期化がボトルネックになる •
複数のプロダクト ビルドが別プロダクトのビルドを待たせる
74.
ANTI PATTERN • 肥満リポジトリ コンテナの初期化がボトルネックになる •
複数のプロダクト ビルドが別プロダクトのビルドを待たせる • 過度なPush 不必要なPushでビルド待ち行列を発生させる
75.
KEEP FASTER • CIの速度はプロジェクトの速度 •
ビルドの待ち行列が発生しないように • ビルドの成功条件を厳守する • 課金重要
76.
PRICE – CIRCLE
CI • Public, Privateに関わらず1 container 無料 • 1 container(parallelism) $50/month • レポジトリ数 無制限 • ユーザ数 無制限 • ビルド時間 無制限
77.
PRICE – GITHUB •
Organization plans - Bronze • Publicリポジトリ 無料&無制限 • 10 Privateリポジトリ $25/month • メンバー数 無制限
78.
CONCLUSION • インテグレーションは自動化 • 頻繁にインテグレーションする •
自動化にはCIaaSを使う • CIaaSを試すにはCircleCIがおすすめ • GitHubも忘れずに • 慣れたらテストスイートを追加していく
79.
以上. ありがとうございました
Télécharger maintenant