Slide 1

Slide 1 text

始めようCI BITBUCKET PIPELINES で 出来るCI

Slide 2

Slide 2 text

自己紹介 名前:Kanege 所属:AnysenseAndroid エンジニア 好きなもの:kotlin と と 挨拶は「こっとり~ん」

Slide 3

Slide 3 text

CI is 何? 継続的インテグレーション コンパイルやテストといったビルド処理を一日 に何度も実行することにより、フィードバック サイクルを短くし、品質を向上させる仕組み。 結合テストの自動化、専用のCI サーバーで行うの が望ましい。

Slide 4

Slide 4 text

つまり・・ 動作環境は別々でも 検証環境を1箇所にすることで 正しく動作していることをが担保できる。

Slide 5

Slide 5 text

pipelines is 何 Atlassian のBitbucket で提供されているCI サービス docker をベースとしている プロジェクトのroot にbitbucket-pipelines.yml に設 定を記述する webhooks を使用して外部サービスと連携が可能 slack でテストの結果を通知したり,aws にデプ ロイしたり

Slide 6

Slide 6 text

導入事例

Slide 7

Slide 7 text

起こっていた問題 いつの間にかTest が壊れてる問題

Slide 8

Slide 8 text

起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ

Slide 9

Slide 9 text

起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ PR2 -> develop:Test せずにマージ

Slide 10

Slide 10 text

起こっていた問題 PR1 -> develop: 既存のTest 破壊,Test せずにマージ PR2 -> develop:Test せずにマージ PR3 -> develop: ここでTest して初めて問題発覚

Slide 11

Slide 11 text

破壊したやつ誰だお

Slide 12

Slide 12 text

起こっていた問題 どうすれば良かった? Test を回すことが浸透していなかった -> Test への 意識を上げる PR 時にtest を回すように心がける -> 忘れること もある 個人の意識で解決できる問題なのだろうか?

Slide 13

Slide 13 text

人に依存するよりシステムに任せよう。

Slide 14

Slide 14 text

PIPELINES で解決 開発環境:Android Build-Tools 24.0.0 develop ブランチに変更があった際にpipelines が 走る ./gradlew test でTest を実行 結果をslack に通知する

Slide 15

Slide 15 text

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実行

Slide 16

Slide 16 text

develop ブランチに変更があると pipelines が走り slack に通知してくれるようになる!

Slide 17

Slide 17 text

開始時 成功時 失敗時

Slide 18

Slide 18 text

異常があればすぐに気付けるので 原因の特定が用意になった!

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

まとめ テスト自動化とその結果をslack にPOST してくれ る! バグがあれば即行気付ける、健全な状態を保て る! ワークフローを1 つに纏めてくれる!

Slide 21

Slide 21 text

自動化を進めて開発に集中しよう!

Slide 22

Slide 22 text

ご清聴ありがとうございました