Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

umechanhika

October 31, 2018
Tweet

More Decks by umechanhika

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. Pipeline
    しかし、、、

    View Slide

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

    View Slide

  8. Pipeline
    Webhook to Jenkins
    for Bitbucket

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide