これまで手動で行なっていたアプリリリース作業を、JenkinsとBitbucketを組み合わせて自動化した話です。
Jenkins + Bitbucketでアプリリリースを⾃動化してみた
View Slide
⾃⼰紹介 梅津 光(ウメツ ヒカル) 株式会社ナビタイムジャパン新卒⼊社 2016~ Androidアプリ開発バスNAVITIME法⼈系アプリ 趣味個⼈アプリ開発最近Flutterに興味ありWorkPrivate
今⽇話すこと ⾃動化に⾄った背景 ⾃動リリースの仕組み メリット/デメリット まとめ今⽇話さないこと Jenkinsの構築⽅法 Bitbucketの導⼊⽅法 具体的なパラメータ
⾃動化に⾄った背景 これまでのリリースフロー リリース⽇を決める。 メンバーそれぞれがいくつかのアイテムを対応。 それぞれの対応をリリースブランチにマージ。 ⼿動でビルドジョブを実⾏。 この運⽤の課題点 リリース⽇になるまで対応が積まれまくる。 影響範囲が広くなり検証担当の負担に。 ⼿動実⾏なので時々パラメータを間違える。
そんな折、ある⽇の会話社内のJenkinsおじさんえ︖まだ⼿動実⾏なんてしてるの︖いまどき⼿動実⾏なんて時代遅れだよ︕え︖そうなんですか︕︖そうだよ、これを使えば簡単に⾃動化できるよ。社内のJenkinsおじさん
Pipelineしかし、、、
Pipelineを勧められたが、、、 運⽤⾯の課題 チームにはJenkins初⼼者が多い。(⾃分含め) したがって導⼊コストが⾼そう。 (Jenkinsおじさんからもある程度知識のあるメンバーがいないと厳しいとの助⾔も。) リリースフローの要件 リリース対象はリリースブランチのみ。 各ブランチ毎に成果物を作る必要はない。 (リリースブランチ以外は開発途中のブランチのため。)
PipelineWebhook to Jenkinsfor Bitbucket
Webhook to Jenkins for Bitbucketとは BitbucketからJenkinsへ通知を送ることができる ポストレシーブといって、コミットが処理された後に実⾏される仕組み 例)リリースブランチに新機能追加のブランチをマージ→それをトリガーに通知を送信
⾃動リリースの流れ開発者検証担当リリースブランチに変更をマージWebhookでJenkinsジョブを起動アプリのビルドやリリースノートの⽣成を実⾏成果物を確認
メリット 細かい対応毎にアプリを検証できるようになった。→検証担当の負担が軽減された。 ⼈⼿を煩わせることがなくなった。→リリースのハードルが下がった。
デメリット 検証不要な⼩さい修正でもアプリがリリースされてしまう。 フォーマット修正 リネーム ect… α版/β版などの採番ができない。
まとめ ⼿動で動かしていたアプリビルドジョブを⾃動実⾏するように改善 リリースブランチの変更をトリガーにJenkinsへ通知を送るWebhook to Jenkins for Bitbucket 細かいリリースが可能になり検証の負担が軽減 微修正でもリリースされるのが若⼲デメリット
ご清聴ありがとうございました︕