FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

CircleCIでテストが終わったらプッシュ通知を飛ばす

f:id:mbaasdevrel:20190620170316p:plain

DevOpsなどで大事なのがCI(継続的インテグレーション)です。その際、テストを効率的に繰り返し実行するためにCircleCIを利用している方は多いのではないでしょうか。

テストを頻繁に繰り返すのは大事ですが、システム全体が大きくなると一回のテストにも時間がかかるようになります。テスト完了を、画面を見て待ち続けるのは苦痛です。そこで今回はテスト完了したらNCMBへプッシュ通知を飛ばす方法を紹介します。

CircleCIの設定について

CircleCIの設定として、ビルドの最後でpush.jsを呼び出すようにします。このため、Node.jsが実行できるDockerイメージを選択します。

docker:
  - image: circleci/node:12.1.0
  : (省略)
- run:
    name: send_push
    command: 'node push.js'

環境変数の設定

アプリケーションキー、クライアントキーはCircleCIの管理画面で環境変数として設定します。

f:id:mbaasdevrel:20190620170316p:plainf:id:mbaasdevrel:20190620170316p:plain

push.jsについて

push.jsは以下のように簡単なコードです。ライブラリとして ncmb をインストールしておきます。

const NCMB = require('ncmb');
const ncmb = new NCMB(process.env.APPLICATION_KEY, process.env.CLIENT_KEY);

(async () => {
  const push = new ncmb.Push();
  await push
    .set("immediateDeliveryFlag", true)
    .set("message", "ビルド完了しました")
    .set("target", ["ios", "android"])
    .send();
})();

実行

後はpull requestを作ればCircleCIで自動的にビルドとテストが実行され、テストが通れば最後にプッシュ通知を作成します。プッシュ通知は即時配信を指定していますので、スマートフォンにビルドが完了した旨、通知が来るはずです。

f:id:mbaasdevrel:20190620170333p:plain

まとめ

CircleCIでは任意のコードを実行できるのでプッシュ通知の作成だけでなく、ビルド結果のファイルをファイルストアに保存したり、テストの結果をmBaaSのデータストアに保存したりすることもできます。専用のアプリケーションキーを作成しても良いでしょう。ぜひDevOpsにmBaaSを役立ててみてください。

継続的インテグレーション・継続的デリバリー - CircleCI

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。