Slide 1

Slide 1 text

Jenkins + Bitbucketで アプリリリースを⾃動化してみた

Slide 2

Slide 2 text

⾃⼰紹介 š 梅津 光(ウメツ ヒカル) š 株式会社ナビタイムジャパン 新卒⼊社 2016~ š Androidアプリ開発 バスNAVITIME 法⼈系アプリ š 趣味 個⼈アプリ開発 最近Flutterに興味あり Work Private

Slide 3

Slide 3 text

今⽇話すこと š ⾃動化に⾄った背景 š ⾃動リリースの仕組み š メリット/デメリット š まとめ 今⽇話さないこと š Jenkinsの構築⽅法 š Bitbucketの導⼊⽅法 š 具体的なパラメータ

Slide 4

Slide 4 text

⾃動化に⾄った背景 š これまでのリリースフロー š リリース⽇を決める。 š メンバーそれぞれがいくつかのアイテムを対応。 š それぞれの対応をリリースブランチにマージ。 š ⼿動でビルドジョブを実⾏。 š この運⽤の課題点 š リリース⽇になるまで対応が積まれまくる。 š 影響範囲が広くなり検証担当の負担に。 š ⼿動実⾏なので時々パラメータを間違える。

Slide 5

Slide 5 text

そんな折、ある⽇の会話 社内のJenkinsおじさん え︖まだ⼿動実⾏なんてしてるの︖ いまどき⼿動実⾏なんて時代遅れだよ︕ え︖そうなんですか︕︖ そうだよ、 これを使えば簡単に⾃動化できるよ。 社内のJenkinsおじさん

Slide 6

Slide 6 text

Pipeline しかし、、、

Slide 7

Slide 7 text

Pipelineを勧められたが、、、 š 運⽤⾯の課題 š チームにはJenkins初⼼者が多い。(⾃分含め) š したがって導⼊コストが⾼そう。 š (Jenkinsおじさんからもある程度知識のある メンバーがいないと厳しいとの助⾔も。) š リリースフローの要件 š リリース対象はリリースブランチのみ。 š 各ブランチ毎に成果物を作る必要はない。 š (リリースブランチ以外は開発途中のブランチの ため。)

Slide 8

Slide 8 text

Pipeline Webhook to Jenkins for Bitbucket

Slide 9

Slide 9 text

Webhook to Jenkins for Bitbucketとは š BitbucketからJenkinsへ通知を送ることができる š ポストレシーブといって、コミットが処理された後に実⾏される仕組み š 例)リリースブランチに新機能追加のブランチをマージ→それをトリガーに通知を送信

Slide 10

Slide 10 text

⾃動リリースの流れ 開発者 検証担当 リリースブランチに 変更をマージ Webhookで Jenkinsジョブを起動 アプリのビルドや リリースノートの⽣成を実⾏ 成果物を確認

Slide 11

Slide 11 text

メリット š 細かい対応毎にアプリを検証できるようになった。 →検証担当の負担が軽減された。 š ⼈⼿を煩わせることがなくなった。 →リリースのハードルが下がった。

Slide 12

Slide 12 text

デメリット š 検証不要な⼩さい修正でもアプリがリリースされてしまう。 š フォーマット修正 š リネーム š ect… š α版/β版などの採番ができない。

Slide 13

Slide 13 text

まとめ š ⼿動で動かしていたアプリビルドジョブを⾃動実⾏するように改善 š リリースブランチの変更をトリガーにJenkinsへ通知を送るWebhook to Jenkins for Bitbucket š 細かいリリースが可能になり検証の負担が軽減 š 微修正でもリリースされるのが若⼲デメリット

Slide 14

Slide 14 text

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