SlideShare a Scribd company logo
1 of 39
Hacker’s GATE
Ikezoe.makoto
自己紹介
• 池添 誠 (いけぞえ まこと)
• 2015年ウィルゲート入社
• サグーワークスの運用改善を主担当として働いてます
– https://works.sagooo.com
イメージキャラクタ:さぐる
テーマ『新年度を迎えて』
テーマ『新年度を迎えて』
テーマ『新年度を迎えて』
ロードバイク始めました!
テーマ『新年度を迎えて』
ロードバイク始めました!
テーマ『新年度を迎えて』
テストコード始めました!
話したい事
テストコードのために bitbucket
pipelines 使用したらハッピーになった話
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
今までの私(サグーワークスの開発)
1. 降ってきた要件をもとに開発
2. 手動テスト
3. リリース
4. 不具合検知 → 不具合の検知が遅くなり、後手に回る
5. 不具合修正
今までの私(サグーワークスの開発)
1. 降ってきた要件をもとに開発
2. 手動テスト
3. リリース
4. 不具合検知 → 不具合の検知が遅くなり、後手に回る
5. 不具合修正
これから
1. 降ってきた要件をもとに開発、テストコード書く
2. 手動自動テスト → 不具合検知!
3. 不具合修正
4. リリース
5. 次の開発
これから
1. 降ってきた要件をもとに開発、テストコード書く
2. 手動自動テスト → 不具合検知!
3. 不具合修正
4. リリース
5. 次の開発
助かる!
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
CIツールの選定
• とにかく手軽にCI回したい
• Bitbucket に 最近追加された CIツール試してみたい
• 面倒な設定や連携に時間をかけたくない
• Bitbucket に 最近追加された CIツール試してみたい
• 爆速で自動テスト!したい!
• Bitbucket に 最近追加された CIツール試してみたい!
選ばれたのは…
選ばれたのは…
Bitbucket pipelines
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
pipelinesって?
• 2016/10 から Bitbucket の提供している CIツール
• Bitbucket が提供しているので、面倒な連携の設定がい
らない!
• ビルド環境は dockerhub の公式イメージを自由に選択
できる
– レポジトリ、およびコミットごとの隔離された環境
– カスタムが容易
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
使い方
pipelines:
default:
- step:
image: php:7.0
services:
# データベースを使う設定
- database
script:
# script 記述する
- make install
- make test
definitions:
services:
database:
image: mysql:5.7
environment:
MYSQL_DATABASE: your_database
MYSQL_ROOT_PASSWORD: your_password
bitbucket-pipeline.yaml
設定を記述した
yamlファイルを
プロジェクトルート
に設置するだけ!
仕組み
ローカルマシンからpush
pipelines
dockerhub
仕組み
ローカルマシンからpush
Bitbucket上で連携
pipelines
dockerhub
仕組み
ローカルマシンからpush
Bitbucket上で連携
pipelines
Image取得
dockerhub
仕組み
ローカルマシンからpush
Bitbucket上で連携
pipelines
dockerhub
Image取得
コンテナ起動
yamlファイルに従ってスクリプト実行
仕組み
ローカルマシンからpush
Bitbucket上で連携
pipelines
dockerhub
Image取得
コンテナ起動
yamlファイルに従ってスクリプト実行
pipelines実行ログを返す
利用シーン
利用シーン
プルリクごとにビルドという項目でCIの結果が一目で確認できる
クリックすると実行ログが確認でき、どこで失敗したかなどが確認できる
利用シーン
Slackへ通知も送れる
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
大変だったこと
• 公開イメージだけだと設定できなかった
– 自分でカスタマイズしたimageをdockerhubに登録し、それを
使用
• mysqlコンテナとのやり取りがlocalhostだとできなかっ
た(公式で127.0.0.1で接続しろって書いてあった)
もくじ
• テストコード導入背景
• CIツール選定
• pipelinesって?
• 使い方、仕組み、利用シーン
• 大変だったこと
• 今後の展望
今後の展望
• テスト環境への自動デプロイとか
• 現状testの実行しかしてないのでphpcs、コードカバレッ
ジ出したり、jsファイルのビルドチェックなどもしたい
ご清聴ありがとうございました

More Related Content

Similar to Bitbucket pipelines を使ってみた話

Endo kitura on_bluemix
Endo kitura on_bluemixEndo kitura on_bluemix
Endo kitura on_bluemixjoohoun song
 
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! Koji Shiraishi
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
高さ比べじゃない、キャリアは歩んできた道
高さ比べじゃない、キャリアは歩んできた道高さ比べじゃない、キャリアは歩んできた道
高さ比べじゃない、キャリアは歩んできた道Kazumi IWANAGA
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話Tadashi Nemoto
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法Takuma Watabiki
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcToshiaki Maki
 
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money FowardNaoki Shimizu
 
JaSST Niigata'20
JaSST Niigata'20JaSST Niigata'20
JaSST Niigata'20JumpeiIto2
 
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたSQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたKumano Ryo
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Tomoki Hasegawa
 
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったことあなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったことMasaru Gushiken
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例Naoto Koshikawa
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版Ikada Kaori
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
20140529 JS Ojisan #2 LT あの「note」はAngular.js
20140529 JS Ojisan #2 LT あの「note」はAngular.js20140529 JS Ojisan #2 LT あの「note」はAngular.js
20140529 JS Ojisan #2 LT あの「note」はAngular.jsShoei Takamaru
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutTsuubito Ishii
 

Similar to Bitbucket pipelines を使ってみた話 (20)

Endo kitura on_bluemix
Endo kitura on_bluemixEndo kitura on_bluemix
Endo kitura on_bluemix
 
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発! SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
高さ比べじゃない、キャリアは歩んできた道
高さ比べじゃない、キャリアは歩んできた道高さ比べじゃない、キャリアは歩んできた道
高さ比べじゃない、キャリアは歩んできた道
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話
 
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
 
Spring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbcSpring Bootキャンプ @関ジャバ #kanjava_sbc
Spring Bootキャンプ @関ジャバ #kanjava_sbc
 
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
 
JaSST Niigata'20
JaSST Niigata'20JaSST Niigata'20
JaSST Niigata'20
 
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたSQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
 
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったことあなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 
HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例HerokuでRails3.2 we love herokuの事例
HerokuでRails3.2 we love herokuの事例
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
20140529 JS Ojisan #2 LT あの「note」はAngular.js
20140529 JS Ojisan #2 LT あの「note」はAngular.js20140529 JS Ojisan #2 LT あの「note」はAngular.js
20140529 JS Ojisan #2 LT あの「note」はAngular.js
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 

Bitbucket pipelines を使ってみた話