第8回Flutterもくもく会参加レポート(Test Lab設定編)

# はじめに 

2020年7月26日にZoomにて[Flutterもくもく会](https://flutter-okurayama.connpass.com/event/181854/)を実施したので、
そのレポートになります。個人的所感メインです。
何かご意見などありましたらよろしくお願いします。
話題になった内容をトピックとして記載します。


もし良ければ過去のものもご覧ください。

* [前回](https://qiita.com/glassmonkey/items/ecffb4aecc544f286ebf)



# トピック
今回のもくもく会で出た話題の一部をピックアップ。
ちなみに勝手ながらこちらのもくもく会に昼頃お邪魔させていただきました。
今日の内容はこちらで教えていただいた内容も混じっています。
(androidの知見大変参考になりました）
https://virtual-flutter-moku2.connpass.com/

## CI/CDについて
Androidのリリース作業周りは https://qiita.com/masaibar/items/ を共有していただきました。
ありがとうございます。

ただ、将来チーム開発への知見としてCI/CDを真面目にやりたかったので
https://www.bitrise.io/
を教えていただきました。androidはGithubActionで自前でそれなりにいけそうですが、iOSリリースのときは多分使いそうだと思いました。（証明書周りとか自前だとだるそうなので）
fastlaneを時前で用意しつつ、依存は最小限にしつつ利用してみるのは良さそうに思いました。


## リリースビルドの検証について
Androidの本番リリースの検証のために[Firebase Test Lab](https://firebase.google.com/products/test-lab/?gclid=CjwKCAjw0_T4BRBlEiwAwoEiAdu6iVQfxj9Z-iatMI-jmOGmpetBXdmgF2RhPVgw_3lOAwxf9HH3QhoCPnMQAvD_BwE)とチーム開発の雰囲気を味わうために[Firebase App Distribution](https://firebase.google.com/?gclid=CjwKCAjw0_T4BRBlEiwAwoEiASE4EDGgS0T6UmgHVMy_dAXZL9gGS2wUIU0LxuVY3vkmOpovzPXz2xoCkQUQAvD_BwE)を使ってみました。

CI/CDにはGithub Actionを使いました。
`flutter build apk`で作成させるapkファイルをアップロードする感じです。

```yml

      - run: flutter build apk
      # Firebase App Distributionへの配布
      - name: upload artifact to Firebase App Distribution
        uses: wzieba/Firebase-Distribution-Github-Action@v1
        with:
          appId: ${{secrets.FIREBASE_APP_ID}}
          token: ${{secrets.FIREBASE_TOKEN}}
          groups: dev
          file: build/app/outputs/apk/release/app-release.apk
      # Firebase Test Labへの配布&動画実行
      - name: Run tests on Firebase Test Lab
        uses: asadmansr/Firebase-Test-Lab-Action@v1.0
        with:
          arg-spec: 'tests.yml:android-pixel-4'
        env:
          SERVICE_ACCOUNT: ${{ secrets.SERVICE_ACCOUNT }}
```


それぞれの設定に関しては各種Readmeをみていただけるとわかりやすいと思います。
*  Firebase App Distribution
  https://github.com/wzieba/Firebase-Distribution-Github-Action

*  Firebase Test Lab  
https://github.com/asadmansr/Firebase-Test-Lab-Action

なお今回私は下記のような感じでRoboテストでやってみました。（いわゆるモンキーテスト）

* 設定するサービスアカウントに関してはEditor(編集者権限）が必要なようです。

* gcpのコンソール上で下記のapiを有効化する必要があります
  * Cloud Testing API
  * Cloud Tool Results API


```tests.yml
android-pixel-4:
  type: robo
  app: build/app/outputs/apk/release/app-release.apk
  device:
    - model: flame
      version: 29
      locale: 'ja_JP'
      orientation: portrait
```
ここで記載している`flame`とは[デバイス一覧](https://firebase.google.com/docs/test-lab/android/available-testing-devices?hl=ja)から選択できるモデル名になります。
[API exploer](https://firebase.google.com/docs/test-lab/reference/testing/rest/v1/testEnvironmentCatalog/get?apix=true&apix_params=%7B%22environmentType%22%3A%22ANDROID%22%7D)から見るのが楽でおすすめです。


## 結果
### App distribution 
![スクリーンショット 2020-07-26 20.39.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152938/caf6c51d-9d53-aa30-fe8f-63e72c102f84.png)
実際メールからリリースビルドのインストールもできた。

### Test Lab
![スクリーンショット 2020-07-26 20.40.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/152938/8d71d84b-92ca-790a-8b47-de477ce00828.png)
こんな感じのネイティブの怪しい挙動が見えたりするので良さそうに思いました。
動画タブではモンキーテストがどのように実施されたかも確認できます。




# おわりに次回開催と宣伝
こちらで定期的にもくもく会を隔週の頻度で実施予定です。次回は8月上旬を予定しています。夏休みなので前後するかもしれません。決まり次第conpass上にてお知らせします。

LTなど発表したい方いましたら [@glassmonekey](https://twitter.com/glassmonekey)にご連絡いただけますと嬉しいです。LTの練習とかも大歓迎です。

下記のコンパスも良ければ登録お願いします。これを機に一緒に始めましょう
https://flutter-okurayama.connpass.com/


# 感想というかメモ
ストアの申請一歩手前まで出来ました。もう少しだ。