Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
出来るCI
Search
Suwashimizu
July 19, 2017
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
出来るCI
BitbucketPiplinesでCIを導入した話
Suwashimizu
July 19, 2017
More Decks by Suwashimizu
See All by Suwashimizu
IntelliJのTemplateを使おう
suwashimizu
2
420
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Making Projects Easy
brettharned
120
6.7k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Accessibility Awareness
sabderemane
1
200
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
We Have a Design System, Now What?
morganepeng
55
8.3k
The Limits of Empathy - UXLibs8
cassininazir
1
640
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Transcript
始めようCI BITBUCKET PIPELINES で 出来るCI
自己紹介 名前:Kanege 所属:AnysenseAndroid エンジニア 好きなもの:kotlin と と 挨拶は「こっとり~ん」
CI is 何? 継続的インテグレーション コンパイルやテストといったビルド処理を一日 に何度も実行することにより、フィードバック サイクルを短くし、品質を向上させる仕組み。 結合テストの自動化、専用のCI サーバーで行うの が望ましい。
つまり・・ 動作環境は別々でも 検証環境を1箇所にすることで 正しく動作していることをが担保できる。
pipelines is 何 Atlassian のBitbucket で提供されているCI サービス docker をベースとしている プロジェクトのroot
にbitbucket-pipelines.yml に設 定を記述する webhooks を使用して外部サービスと連携が可能 slack でテストの結果を通知したり,aws にデプ ロイしたり
導入事例
起こっていた問題 いつの間にかTest が壊れてる問題
起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ
起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ PR2 -> develop:Test
せずにマージ
起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ PR2 -> develop:Test
せずにマージ PR3 -> develop: ここでTest して初めて問題発覚
破壊したやつ誰だお
起こっていた問題 どうすれば良かった? Test を回すことが浸透していなかった -> Test への 意識を上げる PR 時にtest
を回すように心がける -> 忘れること もある 個人の意識で解決できる問題なのだろうか?
人に依存するよりシステムに任せよう。
PIPELINES で解決 開発環境:Android Build-Tools 24.0.0 develop ブランチに変更があった際にpipelines が 走る ./gradlew
test でTest を実行 結果をslack に通知する
Android だとこんな設定です! bitbucket-pipelines.yml image: uber/android-build-environment pipelines: branches: develop://実行 指定 -
step://step 定義, script:// 指定 - mkdir -p "$ANDROID_HOME/licenses" - echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55 - echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd - echo y | android update sdk --no-ui -a - touch local.properties - ./gradlew dependencies || true - ./gradlew test // test実行
develop ブランチに変更があると pipelines が走り slack に通知してくれるようになる!
開始時 成功時 失敗時
異常があればすぐに気付けるので 原因の特定が用意になった!
None
まとめ テスト自動化とその結果をslack にPOST してくれ る! バグがあれば即行気付ける、健全な状態を保て る! ワークフローを1 つに纏めてくれる!
自動化を進めて開発に集中しよう!
ご清聴ありがとうございました