10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitLabを使用したCIの構築とSlackとの連携

Last updated at Posted at 2020-04-05

CI環境の構築

少し遅くなりましたが、アプリのCI環境がある程度整ったのでまとめます。
前回までで作成したUnit,Widget,Integrationのテストコードを.gitlab-ci.yamlに記載することで、gitにpushしたときやMergeした時にテストが動くように設定します。

.gitlab-ci.yaml
image: openjdk:8-jdk

variables:
  ANDROID_COMPILE_SDK: "28"
  ANDROID_BUILD_TOOLS: "28.0.2"
  ANDROID_SDK_TOOLS: "4333796"


stages:
  - build
  - test
  - deploy


UnitTests:
  stage: build
  script:
    - pwd
    - ./unit_test.sh
  tags:
    - mac-ci-runner

WidgetTests:
  stage: test
  script:
    - ./widget_test.sh
  tags:
    - mac-ci-runner

IntegrationTests:
  stage: deploy
  script:
    - ./test.sh
  tags:
    - mac-ci-runner

この時、.gitlab-ci.yamlを実行するRunnerを実行しないと、実行した際にflutter : command not foundとなってしまうため、RunnerをflutterコマンドがインストールされているMac上に構築する必要があります。
その方法は、GitLab CI RunnerをMac上に構築する
の記事をご参照ください。

以上の設定を完了するとCICD > Pipelines では以下のようになり、テストが実行されていることが分かります。
(本当はPush,Merge,tag pushの時などで実行するテストを分けたかったのですが、それは次回取り込みます)

スクリーンショット 2020-04-05 19.59.04.png

テストの結果をSlackに通知させる

次にGitlabとSlackの連携を行います

Slack側の設定

  1. Slack APIにアクセスし、MessagingのIncoming Webhooksを選択。
スクリーンショット 2020-04-05 20.03.49.png
  1. Create your Slack app に遷移し、アプリ名を設定し、通知させたいチャンネル名を選択する
    (まだSlackのアプリなどでワークスペースを作成していない場合は、この段階で作成しておく)
スクリーンショット 2020-04-05 20.05.33.png
  1. 作成が完了すると該当のアプリの画面に遷移するので、Activate Incoming WebhooksONに設定し、Webhook URLをコピーしておく。ここでSlack側の設定は完了
スクリーンショット 2020-04-05 20.10.27.png

GitLab側の設定

  1. 対象のプロジェクトのSettingsIntegrationsに遷移する。
  2. 遷移先のページのSlack notificationsに遷移する。
  3. ページ内で通知の対象としたい契機を選択する。
  4. Test settings and save changesを選択すると無事設定完了です。この段階で前項で設定したSlackのチャンネルに通知が行きます。
スクリーンショット 2020-04-05 20.14.48.png

まとめ

以上でアプリのCI設定が完了しました。
テストが失敗した際も通知が行くので、テスト実行に時間がかかって、他の作業に取り掛かっている時などは便利ですね。
自分が参画しているプロジェクトのクオリティにはまだまだ届きませんが、一連の流れは一旦理解できたかと...
次はCD環境の構築を行います。

10
10
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
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?