$30 off During Our Annual Pro Sale. View Details »

GitHub Actions を導入した経緯 / 2022-06-09

GitHub Actions を導入した経緯 / 2022-06-09

Takuma Yamamoto

June 09, 2022
Tweet

More Decks by Takuma Yamamoto

Other Decks in Programming

Transcript

  1. confidential ©KitchHike Inc.
    GitHub Actions を導入した経緯
    Takuma Yamamoto
    株式会社キッチハイク
    2022.06.09

    View Slide

  2. confidential ©KitchHike Inc.
    BIOGRAPHY
    あなたは誰ですか?
    ● バックエンド: Ruby on Rails
    ● フロントエンド: React
    ● アプリ: React Native
    2
    技術スタック
    SNS
    ●  https://github.com/tamago3keran
    ●  https://twitter.com/yamataku3831
    ●  https://qiita.com/tamago3keran
    ● サウナ
    ● 韓流ドラマ
    ● アニメ ...
    趣味
    Takuma Yamamoto
    Work at KitchHike, Inc.
    From Miyazaki

    View Slide

  3. confidential ©KitchHike Inc.
    Continuous
    Integration
    TODAY’s TOPIC
    3
    弊社が GitHub Actions 導入に至った経緯を紹介
    Continuous
    Delivery
    GitHub Actions を使用して、RubCop や ESLint によるソース
    コードの静的解析や、 RSpec や Jest による自動テストなど、
    効率的な開発を行っています。
    GitHub Actions を使用して、React Native で作成したモバイ
    ルアプリをアプリストアに自動送信・申請しています。

    View Slide

  4. confidential ©KitchHike Inc.
    TODAY’s GOAL
    GitHub Actions 導入のきっかけに
    導入へのきっかけ
    ご自身で開発しているプロダクトに導入
    してみようかなと、考えるきっかけにな
    れば嬉しいです。
    導入事例を知る
    どういった背景や経緯で導入し、結果ど
    ういうメリットを享受できたのかについ
    て、紹介します。

    View Slide

  5. confidential ©KitchHike Inc.
    What is GitHub Actions?
    そもそも GitHub Actions とは何ですか?
    5

    View Slide

  6. confidential ©KitchHike Inc.
    GitHub Actions makes it easy to automate
    all your software workflows, now with
    world-class CI/CD. Build, test, and deploy
    your code right from GitHub.
    INTRODUCTION
    6
    GitHub 製の CI/CD ツール
    GitHub上のアクションなどをフックして、ビル
    ド・テスト・デプロイを自動化できる、GitHub
    製の CI/CD ツールのことです。
    引用元:
    https://github.com/features/actions

    View Slide

  7. confidential ©KitchHike Inc.
    Continuous Integration
    コードの静的解析やテストなどの自動実行
    7

    View Slide

  8. confidential ©KitchHike Inc.
    Wercker のサービス終了がきっかけ
    BACKGROUND
    8
    引用元: https://devcenter.wercker.com
    Important Notice: Wercker service will be
    shutdown on October 31st, 2022 .
    We recommend you to use OCI DevOps service.
    Thank you for using Wercker.
    他サービスへの
    移行を検討することに...

    View Slide

  9. confidential ©KitchHike Inc.
    他 CI サービスを調査して費用を比較検討
    INVESTIGATION
    9
    GitHub Actions CircleCI AWS CodeBuild
    OS
    メモリ
    CPU
    1ヶ月の固定額
    1ヶ月の無料時間枠
    1ヶ月あたり有料で賄う時間
    1分あたりの料金
    1ヶ月の支払額($)
    Linux
    7GB
    4
    $5(= 1+4)
    100分
    11,900分
    $0.01
    $124
    Docker / Linux
    8GB
    4
    $19(= 15+4)
    2,750分
    9,250分
    $0.012
    $130
    Linux
    7GB
    2
    $4
    3,000分
    9,000分
    $0.008
    $76
    ※ 弊社の場合、CI 実行にかかる時間は 1ヶ月で約12,000分 程度だったので、その前提で計算しています。
    ※ OS とメモリを可能な限り近い条件にして比較しています。
    ※ AWS CodeBuild は AWS CodePipeline との併用を前提とし、その利用料を固定額に含めています。
    ※ AWS CodeBuild は US East(N. Virginia) リージョンで計算しています。
    ※ AWS CodeBuild と CircleCI は別途 GitHub の利用が必要なので Pro プランの固定費も含めています。
    ※ https://qiita.com/tamago3keran/items/c16a25bb4bead6b15ac8

    View Slide

  10. confidential ©KitchHike Inc.
    GitHub Actions が最も安い費用で運用できる
    ADVANTAGES
    10
    GitHub Actions CircleCI AWS CodeBuild
    OS
    メモリ
    CPU
    1ヶ月の固定額
    1ヶ月の無料時間枠
    1ヶ月あたり有料で賄う時間
    1分あたりの料金
    1ヶ月の支払額($)
    Linux
    7GB
    4
    $5(= 1+4)
    100分
    11,900分
    $0.01
    $124
    Docker / Linux
    8GB
    4
    $19(= 15+4)
    2,750分
    9,250分
    $0.012
    $130
    Linux
    7GB
    2
    $4
    3,000分
    9,000分
    $0.008
    $76
    ※ 弊社の場合、CI 実行にかかる時間は 1ヶ月で約12,000分 程度だったので、その前提で計算しています。
    ※ OS とメモリを可能な限り近い条件にして比較しています。
    ※ AWS CodeBuild は AWS CodePipeline との併用を前提とし、その利用料を固定額に含めています。
    ※ AWS CodeBuild は US East(N. Virginia) リージョンで計算しています。
    ※ AWS CodeBuild と CircleCI は別途 GitHub の利用が必要なので Pro プランの固定費も含めています。
    ※ https://qiita.com/tamago3keran/items/c16a25bb4bead6b15ac8

    View Slide

  11. confidential ©KitchHike Inc.
    Continuous Delivery
    アプリストアへの送信・申請を自動化
    11

    View Slide

  12. confidential ©KitchHike Inc.
    セキュリティ面を考慮してオフィスのマシンでのみ申請
    BACKGROUND 1
    12
    アプリ申請するためには「証明書」が保存されている端末で Archive する必要があります。ただし、証
    明書を開発メンバー全員が所持していると、流出するリスクを高めてしまいます。よって、「証明書」
    をオフィスのマシンにだけ保存するようにしました。
    それに伴って、アプリ申請がオフィスのマシンに依存するような状態になっていました。

    View Slide

  13. confidential ©KitchHike Inc.
    コロナがきっかけで出社しづらい状況に
    BACKGROUND 2
    13
    コロナがきっかけで出社しづらくなり、オフィスに足を運ばなくてもアプリ申請できる状態にする必要
    がありました。
    様々なサービスを調査し、 GitHub Actions が最も低コストで運用できることがわかったので、導入を
    決めました。

    View Slide

  14. confidential ©KitchHike Inc.
    アプリのデータ送信・申請をクラウド上で行えるようになった
    CHANGE
    14
    GitHub Actions を使用することで、アプリビルドだけでなく、作成されたデータをアプリストアに送信
    し、申請する処理まで、GitHub がホスティングしている仮想マシンで行えるようになりました。
    After
    Before
    証明書
    証明書

    View Slide

  15. confidential ©KitchHike Inc.
    アプリ申請に GitHub Actions を導入したメリット
    ADVANTAGES
    15
    コロナでオフィス出社しづらくなりました
    が、GItHub Actions の導入により、場所を
    問わずアプリ申請が可能になった。
    証明書も GitHub で管理することで、開発
    者全員に配布する必要がなく、セキュリ
    ティ的にも安心。
    他作業に集中できる
    手動でアプリ申請する場合は、ひとつひと
    つコマンドを打ったり、ボタンをぽちぽち
    していました。
    GitHub Actions の導入により、PR を作成
    するだけで、自動で申請までされるように
    なり、その間他作業に集中できるようにな
    りました。
    ヒューマンエラーの防止
    オフィス外から申請できる
    PR を作成するだけで、自動でアプリ申請ま
    でされるようになったことで、人間が作業
    しなくてよくなったので、ヒューマンエ
    ラーの発生を防げます。

    View Slide

  16. confidential ©KitchHike Inc.
    Summary
    GitHub Actions 導入メリットのまとめ
    16

    View Slide

  17. confidential ©KitchHike Inc.
    GitHub Actions 導入のメリットをまとめると...
    SUMMARY
    17
    ● 他サービスと比べると安い費用で CI/CD の運用ができる
    ● アプリ申請に必要な証明書を開発メンバーのローカルに保存しなくてよいので安全
    ● マシンに依存せず、どこからでもアプリ申請を行うことができる
    ● 申請作業が自動化されることで、その間他タスクに集中することができる
    ● 人間が手動で作業を行わなくて良いので、ヒューマンエラーを未然に防げる

    View Slide

  18. confidential ©KitchHike Inc.
    Recruitment
    弊社のサービス概要
    18

    View Slide

  19. confidential ©KitchHike Inc.
    RECRUITMENT
    We are Hiring!
    19
    キッチハイクでは、食と暮らしを豊かにしてい
    く、そんな活動を仕事として取り組みたいエン
    ジニアを募集しています。
    キッチハイク 採用
    https://www.wantedly.com/companies/kitchhike

    View Slide

  20. confidential ©KitchHike Inc.
    ご静聴ありがとうございました!
    20

    View Slide