DeNA Testing Blog

Make Testing Fun, Smart, and Delighting End-Users

CI/CD Test Night 2days開催レポート

はじめまして、SWETの井口(@hisa9chi)です。

2018年11月7, 8日の2日間で、SWET主催によりCI/CD Test Night #1,#2 を開催させていただきました。本勉強会では近年注目されているCIサービスであるBitriseからCTO:Viktor Benei氏(@ViktorBenei)とVP of Growth:Hendrik Haandrikman氏(@HHaandr)のお二方に来日登壇していただきました。

Bitrise社のお二方が来日していただけることとなった経緯と、当日の発表内容に触れつつ、初開催である本勉強会の開催レポートとして投稿させていただきます。

f:id:swet-blog:20181115161607j:plain

最初に

Test Nightとは

Test Night とは、SWETが主催する主にテストに関係することについて語り合うことを目的とした勉強会です。

2016年11月からiOSに特化した「iOS Test Night」を、2017年9月からAndroidに特化した「Android Test Night」をそれぞれ定期的に開催しています。

これまでに多数の発表がおこなわれ、テストに関する知見を共有し・活発な議論がおこなわれる勉強会となっています。

CI/CD Test Nightとは

CI/CDはテストにも大きく関係する技術であるということから、Test Nightの管理するイベントとして新たにCI/CDに特化した「CI/CD Test Night」の開催に至りました。

CI/CDに関する知識、環境やそれら利用していく上でのツラミなどを広く共有することを目的としております。

弊社とBitrise

Bitriseの利用

2017年11月頃よりSWETチーム内にて Bitrise の利用調査を開始しました。同年12月頃には社内で実用性を検証するため、サービス開発している部門の協力でトライアル導入を行い検証を続けておりました。その結果、かなり有効活用ができると判断したため、翌年の2018年1月頃に正式導入となりました。これら導入の経緯は勉強会の1日目に、「Bitriseの社内提供へ」と題して、私から発表させていただきました。

Bitriseとのコラボレーション

弊社とBitrise社との交流の始まりは、iOSDCにて弊社が実施していたアンケートをツイートしたことが始まりでした。

このアンケート内で「CI環境はどこを使っているか」という設問にて、弊社のサービス開発で主に利用しているBitrise, CircleCI等を記載していました。上記のツイートを見ていただければわかりますが、アンケートではBitrise利用者の多さが目立っています。弊社が調査検証を始めていた頃から、iOS開発界隈では注目度がかなり高かったため、その注目度が結果にも表れたのだと思います。

そして、このツイートがBitrise社のHendrik氏の目に止まり、弊社の技術企画宛に直接メッセージをいただきました。このことをきっかけに、Bitrise社を本勉強会に招待するという形で開催が決定いたしました。さらには、せっかくハンガリーよりはるばる来日していただけるので、以下の目的から1日ではなく2日開催としました。

  • Bitrise社に多く話をしていただける場としたい
  • Bitrise社と日本の開発者がコミュニケーションできる場としたい
  • 登壇や聴講でより多くの方に参加していただきたい
  • 自分たちのCI/CD環境について語りあえる場としたい

CI/CD Test Night

ここからは当日の発表内容についてレポートしていきます。

day 1

keynote: Bitrise: Workflows, Integrations and More

1日目の基調講演では、最初にHendrik氏よりBitriseのこれまで歴史と現在をご紹介いただきました。

その中で特に驚いたのは、 Bitriseの市場の中で、日本は世界第3位の規模であるということです。そして、2019年の初期には第2位の規模になる見込みだということです。加えて、Bitriseに関する会話の多くは日本で交わされているとのことです。

その後、Viktor氏より動画を交えながら、プロジェクトの追加からビルド実行までの基本的な設定や、Workflowを構成する代表的なStepsについても説明していただけました。そして、ここでも驚くべきことがあったのですが、Workflowにて利用可能なStepsの約50%はコミュニティによって作成されたということです。

最後に、よく寄せられる質問として以下に関してご説明もいただきました。

  • iOS Code Signing
  • Locating artifacts
  • Attaching artifacts to the builds
  • Reliable Android Espresso/UI tests

内容の詳細は発表資料が公開されておりますのでそちらをご確認いただければと思います。

公募セッション

1日目はLT(5名)を含め7名の方にご登壇いただきました。

タイトル 発表者
Bitriseの社内提供へ Hisashi Iguchi
bitcodeを有効にしたアプリでもdSYMのアップロードを自動化する qmihara
ゼロからはじめない方がいいiOSアプリのビルドシステム構築 dotrikun
Track Everything - すべてをGitHub/Bitriseで追跡可能にする kishikawa katsumi
Workflow、どう組んでいますか? ホリエ
サイボウズのCI/CD事情 - JenkinsおじさんはCircleCIおじさんにしんかした! miyajan
Wantedly Peopleのアプリのリリースワークフロー Ryo Sakaguchi

それぞれ、自社でCI/CD環境を利用した取り組みや、BitirseだけでなくJenkinsやCircleCIを活用されているお話も聞けました。BitriseとCircleCIの両方を導入している弊社としても多くの事例が聞けてよかったと思います。

中でも個人的に興味深かったのは、kishikawa氏とmiyajan氏の発表でした。

kishikawa氏の発表ではテスト、ビルド(手元でのビルド以外)、デプロイをBitriseにて自動化されているということと、それら自動化されたイベントの証跡を辿れるようにしているということでした。CI/CDで自動化するというだけでなく、のちに振り返れるように証跡を辿れることも重要だと思った内容でした。

miyajan氏の発表の中でJenkins おじさん、CircleCI おじさん と出てきた時にあるあるとだなと思っていました。また、その発表の中でCircleCI 2.1の機能に関しての紹介されていました。弊社はCircleCI Enterpriseを利用しており、Enteprise版にはリリースされていないので利用できませんが、リリースされて早く社内でも利用できるようになるいいなと切望しながら聞いていました。

発表の資料はこちらのイベントページに随時公開されていきますので、そちらをご確認いただければと思います。

day 2

keynote: Advances Bitrise and Roadmap Features

2日目の最初も、 Bitrise社のViktor氏とHendrik氏に登壇いただきました。2日目は初日とは異なり、少し突っ込んだお話をしていただけました。Bitrise CLIに加えbitrise.ymlのdiff、Dangerを用いたレビューに関して、Firebase Test Labとそのテストランナーである Flank を利用する事例を紹介していただけました。Flankに関しては私も初めて知り、多くのデバイスを並列して利用でき、テストの総実行時間の短縮に繋がるので利用する効果は高いと思いました。

その後は、これから先のロードマップを紹介していただきました。今後以下の数多くの施策があるようです。

  • Dashboardのリニューアル
  • Firebase Testlab iOSへの対応
  • 組織管理の改善
  • Open Source support
  • SAMLへの対応
  • 新しいビルドシステム
  • Enterprise Support
  • Premium Support

中でも驚いたことは、Enterprise Supportに関して、データセンターの東京設置が考えられているということです。さらに、日本語サポートを可能とする体制も整えることを視野に入れられているようです。

加えて、来日が決まってから、Bitriseの基本20ドキュメントを日本語化する作業に取り掛かったようです。この作業は、多くのコミュニティが賛同して貢献してくれたおかげで、迅速に完了したとのことでした。そして、本勉強会開催の頃には約50ドキュメントが日本語化されているようです。これらドキュメントはGitHub上で管理されているようです。

最後のQAでは、日本のユーザがどのようにBitriseを利用しているか教えて欲しいということを聴講者に伝えていました。その上で、ユーザの方々が欲しい機能であれば、今後ロードマップに追加・修正するといったことも考えているということでした。そのような意向を伝えられたこともあり、会場からはいくつもの改善要望が上がり、Bitrise社と日本の開発者をつなぐことが出来たのではと思いました。

内容の詳細は発表資料が公開されておりますのでそちらをご確認いただければと思います。

公募セッション

2日目はLTも含め6名の方にご登壇いただきました。

タイトル 発表者
CI/CD Test on ReRep Spring_MT
私とBitriseとCircleCI - 私がAndroid CI/CDを移行して得られたもの nemoto_tadashi
アプリの検証がどのくらい行われているか調べてみた henteko
React NativeアプリをBitriseでCDする れこ
社内ライブラリの更新を自動化する話 Ryo Sakaguchi
CI/CD専用モニタと心理的安全性 nakasho

1日目同様に、それぞれのCI/CDを活用した事例を紹介していただきました。

Spring_MT氏とnemote氏の発表では用途に応じて、BitriseとCircleCIを使い分けていることです。開発者がその時に手がけているプロダクトによってCI/CDサービスを選択でき、導入が可能である状況を準備することも重要だと改めて思いました。

また、個人的に面白いなと思ったのはnakasho氏が話されていたCI/CD専用のモニタを活用するということです。こういったものが1つあるだけで、開発者同士で新たなコミュニケーションが生まれ、より良いチーム形成にもつながるのではと思いました。

発表の資料はこちらのイベントページに随時公開されていきますので、そちらをご確認いただければと思います。

終わりに

今回の勉強会では、非常に多くの方に参加していただけ、皆様のCI/CDに対する興味の高さが実感できた会でもありました。当日の登壇内容は動画にて配信しております。参加できなかった方、あるいは参加された方も、当時の雰囲気や発表を再度確認する目的でご覧いただけると嬉しい限りです。

  • CI/CD Test Night #1 動画
  • CI/CD Test Night #2 動画

今回はBitrise社の方を招いて基本的な利用方法や、今後のロードマップに関してお話していただきました。その話の中で、日本市場へ対する投資を惜しまない姿勢がすごく伝わってきました。日本の方をブダペスト本社へ数週間インターンとして招くことや、日本でEnterprise提供に向けデータセンター設置する可能性、サポートのための日本人採用など驚くものばかりでした。今後も定期的に来日するとのことでしたので、機会があれば今回のようにコラボレーションできればなと思います。

CI/CD Test Nightは今回限りの開催ではなく、定期的に開催していこうと思います。そして今回のように、CI/CDサービスを提供している企業様を招いて、サービス提供側のお話も聞くことができるより良い会の運営を目指していきたいと思います。

最後とはなりましたが、今回のイベントを大盛況で開催できたのも、Bitrise社のご協力があったからこそだと思います。遠いハンガリーより来日していただいた上に、参加者のために数多くのノベルティを持参いただき、2日間にわたりKeynoteでご登壇いただいたViktor Benei氏とHendrik Haandrikman氏の両名には感謝しきれません。さらに、本勉強会の当日の様子などをBitrise社のBlogにも投稿いただきありがとうございます。

We truly appreciate Bitrise. Without their cooperation, our event would not have been so successful!! Thank you for everything, Bitrise ,Hendrik, and Viktor.

f:id:swet-blog:20181115161737j:plain

おまけ

参加者向けにBitriseより持参いただいたノベルティ各種です。

f:id:swet-blog:20181115161905j:plain:w135 f:id:swet-blog:20181115161735j:plain:w135 f:id:swet-blog:20181115161730j:plain:w135 f:id:swet-blog:20181115162812j:plain:w135