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

658634c5077d2652d14b6ba043d850f0?s=47 Umechan
October 31, 2018

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

これまで手動で行なっていたアプリリリース作業を、JenkinsとBitbucketを組み合わせて自動化した話です。

658634c5077d2652d14b6ba043d850f0?s=128

Umechan

October 31, 2018
Tweet

Transcript

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

  2. ⾃⼰紹介 š 梅津 光(ウメツ ヒカル) š 株式会社ナビタイムジャパン 新卒⼊社 2016~ š

    Androidアプリ開発 バスNAVITIME 法⼈系アプリ š 趣味 個⼈アプリ開発 最近Flutterに興味あり Work Private
  3. 今⽇話すこと š ⾃動化に⾄った背景 š ⾃動リリースの仕組み š メリット/デメリット š まとめ 今⽇話さないこと

    š Jenkinsの構築⽅法 š Bitbucketの導⼊⽅法 š 具体的なパラメータ
  4. ⾃動化に⾄った背景 š これまでのリリースフロー š リリース⽇を決める。 š メンバーそれぞれがいくつかのアイテムを対応。 š それぞれの対応をリリースブランチにマージ。 š

    ⼿動でビルドジョブを実⾏。 š この運⽤の課題点 š リリース⽇になるまで対応が積まれまくる。 š 影響範囲が広くなり検証担当の負担に。 š ⼿動実⾏なので時々パラメータを間違える。
  5. そんな折、ある⽇の会話 社内のJenkinsおじさん え︖まだ⼿動実⾏なんてしてるの︖ いまどき⼿動実⾏なんて時代遅れだよ︕ え︖そうなんですか︕︖ そうだよ、 これを使えば簡単に⾃動化できるよ。 社内のJenkinsおじさん

  6. Pipeline しかし、、、

  7. Pipelineを勧められたが、、、 š 運⽤⾯の課題 š チームにはJenkins初⼼者が多い。(⾃分含め) š したがって導⼊コストが⾼そう。 š (Jenkinsおじさんからもある程度知識のある メンバーがいないと厳しいとの助⾔も。)

    š リリースフローの要件 š リリース対象はリリースブランチのみ。 š 各ブランチ毎に成果物を作る必要はない。 š (リリースブランチ以外は開発途中のブランチの ため。)
  8. Pipeline Webhook to Jenkins for Bitbucket

  9. Webhook to Jenkins for Bitbucketとは š BitbucketからJenkinsへ通知を送ることができる š ポストレシーブといって、コミットが処理された後に実⾏される仕組み š

    例)リリースブランチに新機能追加のブランチをマージ→それをトリガーに通知を送信
  10. ⾃動リリースの流れ 開発者 検証担当 リリースブランチに 変更をマージ Webhookで Jenkinsジョブを起動 アプリのビルドや リリースノートの⽣成を実⾏ 成果物を確認

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

  12. デメリット š 検証不要な⼩さい修正でもアプリがリリースされてしまう。 š フォーマット修正 š リネーム š ect… š

    α版/β版などの採番ができない。
  13. まとめ š ⼿動で動かしていたアプリビルドジョブを⾃動実⾏するように改善 š リリースブランチの変更をトリガーにJenkinsへ通知を送るWebhook to Jenkins for Bitbucket š

    細かいリリースが可能になり検証の負担が軽減 š 微修正でもリリースされるのが若⼲デメリット
  14. ご清聴ありがとうございました︕