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の管理画面で環境変数として設定します。
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で自動的にビルドとテストが実行され、テストが通れば最後にプッシュ通知を作成します。プッシュ通知は即時配信を指定していますので、スマートフォンにビルドが完了した旨、通知が来るはずです。
まとめ
CircleCIでは任意のコードを実行できるのでプッシュ通知の作成だけでなく、ビルド結果のファイルをファイルストアに保存したり、テストの結果をmBaaSのデータストアに保存したりすることもできます。専用のアプリケーションキーを作成しても良いでしょう。ぜひDevOpsにmBaaSを役立ててみてください。