LoginSignup
6
4

More than 3 years have passed since last update.

前回、Github ActionsでCIの記事を書きましたが、やっぱりテストレポートが見づらいので、CircleCIでも回してみることにしました。

環境

ツールなど バージョンなど
MacBook Air Early2015 macOS Mojave 10.14.5
Android Studio 3.6.1
Java 1.8.0_131
Flutter 1.12.13+hotfix.5
Dart 2.7.0

Flutterのバージョンが訳あって最新版ではありません。
(恐らく、上記がmacOS Mojaveで動かせる最後のバージョンです)
今回、この点で苦労することになりました(汗)

1.ワークフローを作成する

CircleCIのダッシュボードから、プロジェクトを新規作成し、対象のリポジトリを選んで[Setup Project]をクリックします。

circleci_setup_project.png

Hello Worldを選ぶ

デフォルトでHello Worldが選ばれているはずですが、なっていない場合は、リストから探して選択して下さい。

circleci_start_build.png

[Start Building]をクリックすると、以下のようなポップアップが出ます。

circle_ci_add_config.png

いったん、ブランチが作成されますがそのまま[Add Config]をクリックします。
自動でビルドが開始され、成功するはずです。

yamlを編集する

Flutter用のOrbを作って下さっている方がいますが、FlutterSDKのバージョンが私の場合、合わないため、自分でDockerイメージを引っ張ってくることにしました。

上記のFlutter用のOrbのコードを参考に、

    docker:
      - image: cirrusci/flutter:v1.12.13+hotfix.5

としようとしたんですが、まずはちゃんとそのバージョンのイメージがあるか調べようと思い、Docker Hubの作者さんのページを見に行ったら、どうも、ありません。

バージョンは合ってないとさすがにまずいだろう・・・ということで、他のイメージを探し、こちらに発見しました。

oursky/flutter:v1.12.13-hotfix.5

ありがたく使わせて頂きます!

yamlはこうなりました。

.circleci/config.yml
version: 2.1

orbs:
 slack: circleci/slack@3.4.2

jobs:
  build:
    docker:
      - image: oursky/flutter:v1.12.13-hotfix.5
    working_directory: ~/repo
    steps:
      - checkout
      - run:
          name: flutter setting
          command: |
            flutter pub get
            flutter pub global activate junitreport
            mkdir -p ./test-reports/ 2>/dev/null
      - run:
          name: Test
          command: |
            export PATH="$PATH":"/flutter/.pub-cache/bin"
            flutter test --machine | tojunit --output ./test-reports/TEST-results.xml
      - store_artifacts:
          when: always
          path: test-reports
          destination: test-reports
      - store_test_results:
          path: test-reports
      - slack/status:
          success_message: ':circleci-pass: $CIRCLE_BRANCH のビルドが完了しました\n:github_octocat: User:$CIRCLE_USERNAME'
          failure_message: ':circleci-fail: $CIRCLE_BRANCH のビルドが失敗しました\n:github_octocat: User:$CIRCLE_USERNAME'
          webhook: '${SLACK_WEBHOOK}'

workflows:
  version: 2
  build-deploy:
    jobs:
      - build:
          filters:
            branches:
              only: develop

以前作成したtest.shは使わないことにしました。CircleCIは、xmlのテスト結果レポートがページ上で見られるので、わざわざhtmlにしてやる必要が無いからですね。
というわけで、junitreportだけ使ってxmlにコンバートするのだけやっています。

後は特に複雑なことをしていないかと思います。

感想

Github ActionsとCircle CIで二重にテストが走るようになり、Slack通知が倍!
うるさい(笑)

で、ここまで書いた後で、Codemagicというのを見つけて、なんとFlutter専用のCI/CDツールなのだとか!?

Codemagic
https://codemagic.io/start/

Codemagicの設定手順&ハマりそうなところをまとめてみた
https://qiita.com/yukitaka13-1110/items/2b4fb8a25c1559f3e278

500ビルド/月まで無料なんて、太っ腹すぎない??

CircleCIは、WebのUIが新旧の遷移が入り交じってて正直今は使いづらいし、ちょっと試してみよう・・・

ということで、次回は、CodemagicでCI編(予定)となります(^^

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4